PDA

View Full Version : ارسال متغییر به توابع و زیربرنامه های داخل Dll



Ali-Far
شنبه 17 تیر 1385, 13:53 عصر
با سلام.
من یک dll ساخته ام و درون برنامه تابع داخل آن را فراخوانی می کنم ولی مقادیر متغییر ارسالی تغییر می کند (فراخوانی از نوع استاتیک هستش) مثلا اگه فراخوانی با آدرس باشه مقدار اون را تو متغییر بعدی اش می ریزه :
type a : array[1..10] of double;
test(var a: ary ; b,c :ary) // Call procedure

بعد از اون تو فایل dll مقدار a و b عوض میشه و مقدار a صفر میشه .
من بصورت فراخونی با مقدار هم تست کردم ولی متغییر هام اون چیزی نیست که ارسال شده است

Touska
شنبه 17 تیر 1385, 15:46 عصر
شما باید از Share Memory استفاده کنید . در سایت جستجو کنید

Ali-Far
یک شنبه 18 تیر 1385, 08:01 صبح
با سلام.
من برنامه تو دو حالت تست کردم یکی با استفاده از یونیت ShareMem و یکی بدون استفاده از این یونیت که در حالت اول دو پیغام زیر می دهد :

Access violation at address 003820AF in module "test.dll" . Red of address 00000000.
Runtime error 204 at 00372660

و در حالت دوم :
Access violation at address 003820AF in module "test.dll" . Red of address 00000000.
حالا من این دو تا خطا ؟؟؟؟

Touska
یک شنبه 18 تیر 1385, 16:25 عصر
من از اینا استفاده کردم مشکلم حل شد :

1- http://delphi.about.com/od/objectpascalide/l/aa103003a.htm
2- http://bdn.borland.com/article/16386
3- http://delphi.icm.edu.pl/newl/d70/s050_001.htm

موفق باشید :)