Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ]
#8
Erişim ihlali hatası alıyorum.

1) İhlal hatası: olası nedenler:
a) nesne oluşturulmamış
b) nesne yok edilmiş

Her iki durumda da, "Arayüzler" (mobil cihazlarda yaygın) kullanırken, nesnenin ihtiyaç duyulana kadar "canlı kalmasını" sağlamalısınız. Bu nedenle, nesnenin yaşamaya devam etmesini "garanti etmek" için bir değişken kullanabilirsiniz!

Bu konuda yapay zekaya danıştığımda, prosedürün `cdecl` ile başlaması gerektiğini ve bunun bir derleme sorunu olduğunu öne sürdüler; ancak, `loadObjectOfClass` içinde bu şekilde derlemeye çalıştığımda IDE bir hata üretiyor.

1) "CDECL" türü bildirimi genellikle "C" dilinde yazılmış DLL/O (nesne) fonksiyonlarına erişmek içindir; bu durumda, Android, iOS ve MSWindows kütüphaneleri bu tür bir bildirimi kullanır.

Bu nedenle, API dokümantasyonuna başvurmalısınız. Çünkü orada nasıl kullanılacağına dair daha fazla bilgi bulacaksınız.

Örneğin, MSWindows'ta Delphi'nin bildirim türünün "C" standardında olduğunu belirtmesi gerekir; bu nedenle harici sistem fonksiyonlarına erişmek için, fonksiyon veya prosedür çağrısının sonunda şu yönergeyi kullanmalısınız:
function xxxxx( xxxxxxx ):integer; cdecl;

Ancak, bu fonksiyon yalnızca Delphi'nin dahili birimlerinde başlık bildirimi zaten tanımlanmışsa kullanılabilir olacaktır. Bunu yapmak için, CBuilder için başlık dosyalarını veya Delphi için .Pas birimlerini kontrol edebilirsiniz. Normalde, "USES" veya "INCLUDE" maddesini kullandığınızda, bu fonksiyonun hangi birimde bulunduğuna dair bir fikriniz zaten vardır. Örneğin, "Winapi.Windows.pas" biriminde, Delphi'nin Embarcadero'dan tanımlanarak kullandığı tüm MSWindows API fonksiyonlarını göreceksiniz.

iOS kullanmıyorum, bu yüzden Xcode ve benzeri programlara çok aşina değilim...
Ama genel olarak tavsiyem şu:
a) Anlaması kolay bir bölüm oluşturun, iOS'a kurun ve temel testler yapın!

b) Her yeni dağıtımda kademeli olarak özellikler ekleyin ve test edin.

c) Sadece yapay zeka kodunu kopyalamaya çalışmayın; onlardan her seferinde bir bölümü açıklamalarını isteyin. Genellikle size her şeyi birden vereceklerdir. Bu öğrenme için iyi değil. Onlardan küçük parçalar göstermelerini isteyin ve kodun neden çalışıp çalışmadığını anlayana kadar soru sormaya devam edin!

d) Programlama kesin bir bilim değil; yavaş yavaş bilgi edinme ve pratik yapma meselesidir. Sonunda her şey yoluna girer, ancak çok fazla emek gerektirir.

e) Unutmayın: On yıllarca deneyime sahip yazılım mühendisleri bile maliyetli olan temel hatalar yaparlar!

implementation

{$R *.dfm}
// Example:

var
 MyObjX        : TObject;    // your "object type" ...
 MyObjInterface: IInterface; // your "interface x"

procedure Hello1( AObj: TObject );
begin
 // to do something ...
 AObj.Free; //  DONT DO IT!!!  = exception or access violation after get out here!
 //
end;

procedure Hello2( MyObjInterface: IInterface );
begin
 // to do something ...
 //
 MyObjInterface := nil; //  DONT DO IT!!!  = exception or access violation after get out here!

end;

procedure TForm1.Button1Click( Sender: TObject );
begin
 MyObjX := TObject.Create; // my object is alive  here....
 try
   Hello1( MyObjX ); // my object is alive  here....
   //
 finally
   MyObjX.Free; // my object is free here....
 end;
 //
 MyObjInterface := TMyObj_Interfaced.Create; // my object is alive  here....
 try
   Hello2( MyObjInterface ); // my object is alive  here....
   //
 finally
   MyObjX := nil; // my object is free here....
 end;
end;
Özellikle "arayüzlerin" kullanımının yoğun olduğu sistemlerde, nesnenin hala canlı olup olmadığını her zaman kontrol etmelisiniz!!!

if (MyObj<>nil) and ( MyObj.PropXXX <> nil) then ....
veya // duruma bağlı olarak
if Assigned(MyObj) and Assigned( MyObj.PropXXX ) then ....


Assigned( ... ) genellikle değişken bir metodu veya nesneyi tanımladığında kullanılır, örneğin, bir olay metodunu tanımlayan sınıf alanları:

procedure TForm1.Button1Click( Sender: TObject );
begin
if Assigned( Button1.OnClick ) then
Button1.OnClick( self ); // = Button1.Click
end;


Ek Dosyalar
.txt   Gemini - PhotoPicker of iOS sample.txt (Dosya Boyutu: 16,09 KB / İndirme Sayısı: 5)
MSWindows, AndroidRAD Studio 13 Florence ve kafamda bir fikir  Tongue  
WWW
Cevapla


Bu Konudaki Yorumlar
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ] - Yazar: codder71 - 07-07-2026, Saat: 16:39
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 07-07-2026, Saat: 23:06
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 08-07-2026, Saat: 16:16
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 08-07-2026, Saat: 18:08
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 13-07-2026, Saat: 15:05
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 14-07-2026, Saat: 01:32
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 14-07-2026, Saat: 23:26
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 15-07-2026, Saat: 02:29
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emozgun - 17-07-2026, Saat: 05:30
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 17-07-2026, Saat: 16:47
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 18-07-2026, Saat: 01:55
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emozgun - 18-07-2026, Saat: 06:26
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 18-07-2026, Saat: 22:37
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ] - Yazar: emailx45 - 18-07-2026, Saat: 22:54

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Wmware Macos Apple Hesap Sorunu nurah 3 355 20-08-2026, Saat: 22:35
Son Yorum: codder71
  Google Play Billing Versiyon Sorunu[ÇÖZÜLDÜ] codder71 12 1.158 01-08-2026, Saat: 22:45
Son Yorum: codder71
  Android 16 Uygulama Ekran Taşma Sorunu[ÇÖZÜLDÜ] codder71 5 670 31-07-2026, Saat: 23:38
Son Yorum: mcuyan
  ios için uygulama derleme [ÇÖZÜLDÜ] codder71 29 3.885 01-07-2026, Saat: 14:39
Son Yorum: codder71
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 2 883 08-06-2026, Saat: 16:22
Son Yorum: emailx45



Konuyu Okuyanlar: 2 Ziyaretçi