MVReza
جمعه 24 اردیبهشت 1395, 21:21 عصر
با سلام خدمت دوستان؛
من در حال نوشتن یک dll در دلفی هستم که مشکلی در raise یک exception خاص را دارم.
فرض کنین این تابع من هست:
function X(a, b: integer): real;
begin
if b = 0 then
raise Exception.Create('Division By Zero!')
else
Result := a / b;
end;
خب! من این تابع داخل dll رو از یک برنامه دلفی میتونم فراخونی کنم و نتیجه تابع و یا خطای مورد نظر رو دریافت کنم و اونرو داخل یک بلوک try...except بندازم و یک پیغام دیگه ای رو بجاش (در حالت بروز خطا) نشون بدم.
مشکل من اینجاست که میخوام این تابع رو از برنامه نوشته شده با C# فراخوانی کنم. زمانی که اتظار مشاهده پیغام خطا در صورت پاس کردن مقدار 0 برای پارامتر دوم رو دارم، ویژوال استودیو خطای MarshalDirectiveException was unhandled میده. حال نمیدونم نحوه نوشتن تابع من توی dll غلطه و یا نحوه فراخوانی اون تو یه زبان دیگه مثلا C#.
انشاللاه کی تایپکم نابجا نباشه.
ممنون از راهنمایی دوستان.
من در حال نوشتن یک dll در دلفی هستم که مشکلی در raise یک exception خاص را دارم.
فرض کنین این تابع من هست:
function X(a, b: integer): real;
begin
if b = 0 then
raise Exception.Create('Division By Zero!')
else
Result := a / b;
end;
خب! من این تابع داخل dll رو از یک برنامه دلفی میتونم فراخونی کنم و نتیجه تابع و یا خطای مورد نظر رو دریافت کنم و اونرو داخل یک بلوک try...except بندازم و یک پیغام دیگه ای رو بجاش (در حالت بروز خطا) نشون بدم.
مشکل من اینجاست که میخوام این تابع رو از برنامه نوشته شده با C# فراخوانی کنم. زمانی که اتظار مشاهده پیغام خطا در صورت پاس کردن مقدار 0 برای پارامتر دوم رو دارم، ویژوال استودیو خطای MarshalDirectiveException was unhandled میده. حال نمیدونم نحوه نوشتن تابع من توی dll غلطه و یا نحوه فراخوانی اون تو یه زبان دیگه مثلا C#.
انشاللاه کی تایپکم نابجا نباشه.
ممنون از راهنمایی دوستان.