با سلام خدمت دوستان؛
من در حال نوشتن یک 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#.
انشاللاه کی تایپکم نابجا نباشه.
ممنون از راهنمایی دوستان.
برچسب:
نویسنده: محمد رضا جوادیان