PDA

View Full Version : سوال: چگونگی فراخوانی یک تابع به زبان پاسکال در C#.net



LeilaGhods
دوشنبه 27 خرداد 1387, 21:57 عصر
سلام

ممنون می شوم اگر کسی به من کمک کند : من یک برنامه پاسکال دارم که می خواهم تابع آن را از C# فراخوانی کنم و يک جور لفافه بندی انجام بدهم. یک برنامه نوشتم که کل فايل exe را اجرا می کند . حالا اگر بخواهم يک تابع آن را صدا بزنم چکار بايد بکنم (نحوه پاس کردن پارامترها و گرفتن خروجی). واقعاً ممنونم اگر کسی به من کمک کند.

razavi_university
سه شنبه 28 خرداد 1387, 01:25 صبح
شما نمیتونین یه تابع از پاسکال رو همینطوری از #C فراخوانی کنین(غیر از اینکه به قول خودتون لفافه بندی بشه تا به کد Native تبدیل بشه که اون رو هم یادم نیست پاسکال میتونست خروجی DLL یا OCX بده یا نه)
اگر هم بخواهیید از فایل Exe تون (که به زبان پاسکال) یکسری خروجی بگیرین باید تابع Main رو در برنامه پاسکال درستش کنین تا یکسری پارامتر از خط فرمان بگیره و خروجی رشته ای بده

LeilaGhods
سه شنبه 28 خرداد 1387, 10:35 صبح
شما نمیتونین یه تابع از پاسکال رو همینطوری از #C فراخوانی کنین(غیر از اینکه به قول خودتون لفافه بندی بشه تا به کد Native تبدیل بشه که اون رو هم یادم نیست پاسکال میتونست خروجی DLL یا OCX بده یا نه)
اگر هم بخواهیید از فایل Exe تون (که به زبان پاسکال) یکسری خروجی بگیرین باید تابع Main رو در برنامه پاسکال درستش کنین تا یکسری پارامتر از خط فرمان بگیره و خروجی رشته ای بده


چگونه بايد اين كار را انجام بدهم؟ از چه چيزي استفاده كنم؟

mohammed
سه شنبه 28 خرداد 1387, 11:54 صبح
فکر می کنم اگر کلیدهای صحیح را حین کامپایل بدی بتوانی توابعت را بصورت public در یک dll قرار بدی و بعد در C# آنرا با DllImport فراخوانی کنی. به احتمال زیاد لازم است توابع مورد نظرت بصورت stdcall تعریف شوند.

موفق باشی

LeilaGhods
سه شنبه 28 خرداد 1387, 12:58 عصر
سلام
ممنون از راهنماييتون
چگونه مي توانم توابع را به صورت stdcall تعريف كنم و كليدهاي صحيح كامپايل كدامها هستند؟

Mahdi-563
سه شنبه 28 خرداد 1387, 19:56 عصر
دوست عزيز پاسكال كه 16 بيتيه ولي تو دلفي مي توني dll درست كني و تو C# صداش بزني

mohammed
چهارشنبه 29 خرداد 1387, 18:26 عصر
آقا مهدی تا جایی که می دانم Delphi یک محیط توسعه برای Object Pascal است.



سلام
ممنون از راهنماييتون
چگونه مي توانم توابع را به صورت stdcall تعريف كنم و كليدهاي صحيح كامپايل كدامها هستند؟

در باره سوال بالا برای جزئیات بیشتر فکر کنم در تالار مربوط به Delphi بهتر بتوانی جواب بگیری من خیلی وقت است که از دنیای پاسکال و دلفی دور شده ام.

Mahdi-563
جمعه 31 خرداد 1387, 09:52 صبح
آقا مهدی تا جایی که می دانم Delphi یک محیط توسعه برای Object Pascal است.




در باره سوال بالا برای جزئیات بیشتر فکر کنم در تالار مربوط به Delphi بهتر بتوانی جواب بگیری من خیلی وقت است که از دنیای پاسکال و دلفی دور شده ام.

درسته دوست عزيز ولي با يكم تغيير در تابع ايشون ميشه يه dll ازش ساخت.:چشمک:

اَرژنگ
جمعه 31 خرداد 1387, 17:39 عصر
دوست عزيز پاسكال كه 16 بيتيه ولي تو دلفي مي توني dll درست كني و تو C# صداش بزني
۱۶ بیتی؟ دلفی؟ با دلفی ۲۰۰۵ به بعد میتونند اسملی درست کنند و در دات نت استفاده کنند، احتیاجی به دی‌ال‌ال درست کردن نیست.