Structure bilgisini DLL'e yollama

Başlatan bunalmis, 17 Nisan 2010, 11:29:38

z

Unit1 de Blok olarak tanimli structure yapimiz asagidaki gibi olsun.

Blok = Record
   A: Integer;
   B: Word;
   C: byte
end;


Buffer olarak tanimli array da Blok yapisinda olsun.

var Buffer: Array [0..100] of Blok;


Unit1 tarafinda Buffer uzerinde istedigim degisiklikleri yapabiliyorum.


Fakat dll tarafindan Buffer uzerinde islem yapabilmek icin  nasil islem yapmam gerektigini cikartamadim.

DLL fonksiyonuna Bufferin unit1 deki adresini bildirmem gerekiyor. Bunu nasil yapacagim?
DLL tarafinda ayni structure tanimini yapmam gerekecek. Ancak buffer dll in kendi alaninda olmayacak.

Bu tanimi nasil yapacagim?

Unit1 icinde Buffer[1].A=1 yazmak yerine pointer ile yapmak isteseydim nasil yapardim?

// *************

Cevabi buldum

var P:^Blok tanimladiktan sonra
Adresi ADR:=Addr(Buffer);

olarak ogrenebiliyoruz. Bundan sonra isimiz kolay.

Gerektiginde P.A=1 yada X=P.A diyede pointer uzerinden islem yapabiliyoruz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com