View Full Version : سوال: استفاده از dll دات نت مربوط به pos بانك مهر در دلفي
ranjbar_2
پنج شنبه 21 خرداد 1394, 12:44 عصر
با سلام
از اساتيد محترم خواهشمندم در صورت امكان فايل پيوست شده رو كه حاوي dll , pdf هستش رو يه نگاهي بندازن من مي خوام از اين dll در دلفي استفاده كنم ولي با روش هاي معمول نتونستم
http://s6.picofile.com/file/8193133118/PcPos_Helpversion1_26_12_93.zip.html
در ضمن این فایل مربوط به شرکت فناپ می باشد که بانک های دولتی مثل رفاه قرار داد داره .
vcldeveloper
چهارشنبه 27 خرداد 1394, 00:53 صبح
بصورت عادی نمیشه یک کد Managed شده دات نتی را در کد Native دلفی استفاده کرد. اگر لازم باشه یک کد دات نتی از داخل یک برنامه Native اجرا بشه، باید تبدیل به یک شی COM بشه. برای این منظور باید کلاس مربوطه در دات نت بصورت COM Visible معرفی بشه، و با استفاده از regasm در ماشین مقصد رجیستر بشه. برای آشنایی بیشتر با COM و دسترسی به اشیاء دات نتی در COM می تونید این مطلب را مطالعه کنید:
http://blogs.msdn.com/b/cristib/archive/2012/10/31/how-com-works.how-to-build-a-com-visible-dll-in-c_2300_.net_2c00_-call-it-from-vba-and-select-the-proper-classinterface-_2800_autodispatch_2c00_-autodual_2900_-_5b00_part1_2f00_2_5d00_.aspx
اگر کلاس موجود در DLL مورد نظر شما بصورت COM Visible کامپایل نشده باشه، می تونید یک کلاس جدید دات نتی تعریف کنید که از این DLL استفاده کنه، و متدها و ویژگی های مورد نظر شما را در قالب یک DLL دات نتی دیگه که COM Visible هست، ارائه کنه. بعدش اون DLL را در داخل کد دلفی خودتان استفاده کنید. در واقع DLL دومی که خودتان با دات نت می نویسید نقش یک آداپتور را برای DLL اول بازی می کند.
چگونگی فراخوانی اشیاء COM از داخل دلفی هم بخش آخر کار هست که در انواع کتب آموزش دلفی، و در همین سایت و سایر سایت های پرسش و پاسخ بارها توضیح داده شده.
همچنین ابزار تجاری Hydra هم مدعی است میتونه ارتباط بین کلاس های دات نتی و کدهای دلفی را برقرار کنه، به نحوی که بشه از کد دات نتی بدون تغییر در دلفی استفاده کرد. قیمتش چند صد دلاره، البته شاید کرکش هم موجود باشه؛ ولی مطمئن نیستک برای کار شما نسبت به بررسی COM Visible بودن DLL فعلی یا نوشتن یک آداپتور ساده برای آن، پیچیدگی را کمتر کنه.
بهروز عباسی
چهارشنبه 27 خرداد 1394, 19:27 عصر
سلام
اگر لازم باشه یک کد دات نتی از داخل یک برنامه Native اجرا بشه، باید تبدیل به یک شی COM بشه.
علاوه بر این راه میشه از پکیج های مثل UnmanagedExports (https://www.nuget.org/packages/UnmanagedExports) هم استفاده کرد که به ما اجازه Export کردن توابع به صورت Nativeرو میدن و به این ترتیب میشه از DLL های ایجاد شده در #Cتوی دلفی هم استفاده کنیم.
* برای استفاده از این پکیج حتما باید توی پروژه سی شارپ CPU Type رو x86 انتخاب کنیم(قبلا که اینجوری بود :افسرده:)
rahnema1
پنج شنبه 28 خرداد 1394, 08:08 صبح
سلام
به عنوان یک روش خیلی ساده می تونید یک برنامه exe در سی شارپ درست کنید که از dll استفاده کنه سپس در دلفی از طریق یکی از روشهای interprocess communication با برنامه سی شارپ ارتباط برقرار کنید
ranjbar_2
جمعه 29 خرداد 1394, 10:57 صبح
سلام دوستان عزيز
راستش من اين چند روز خيلي سرم شلوغ بود به سايت سر نزدم
آقاي كشاورز همين طور كه فرموديد من مجبور شدم يه dll ديگه با دات نت بسازم كه برام com ايجاد كنه تا تو دلفي لودش كنم آخه برنامه نويس شركت مربوطه اصلا نمي فهميد من چي ميگم
به هر حال تشكر از توجه همتون
online_com
دوشنبه 26 مرداد 1394, 11:34 صبح
سلام دوستان عزيز
راستش من اين چند روز خيلي سرم شلوغ بود به سايت سر نزدم
آقاي كشاورز همين طور كه فرموديد من مجبور شدم يه dll ديگه با دات نت بسازم كه برام com ايجاد كنه تا تو دلفي لودش كنم آخه برنامه نويس شركت مربوطه اصلا نمي فهميد من چي ميگم
به هر حال تشكر از توجه همتون
با سلام
من هم مشكل شما رو دارم و لي با دات نت آشنايي چنداني ندارم اگر امكانش هست اين dll رو كه خودتون در دات نت ايجاد كرديد كه com رو ايجاد مي كنه اين جا بزاريد تا من هم استفاده كنم
با تشكر:خجالت::لبخندساده::خجال ::خجالت::خجالت:
BORHAN TEC
چهارشنبه 28 مرداد 1394, 21:21 عصر
با سلام،
امروزه انجام این کار خیلی راحته. به نظر من در این سناریو بی دردسرترین راه حل استفاده از محصول Cross Talk شرکت Atozed هست که کرکش هم همه جا وجود داره و توی اینترنت ریخته :لبخندساده:. این محصول رو در ویدئوی شماره 47 (آخرین ویدئو) از لینک زیر توضیح داده ام:
http://www.irstu.com/?p=8490
در لینک زیر هم روش دیگه ای رو توضیح داده ام که البته مثل روش قبلی جذاب و دلچسب نیست ولی بعضی وقتها کار رو راه میندازه:
http://barnamenevis.org/showthread.php?t=302371
موفق باشید.
یوسف زالی
سه شنبه 29 آذر 1401, 22:18 عصر
این دو هفته اخیر همین Cross Talk و نمونه دیگه اش CrystalNet .Net Runtime Library for Delphi پدر من رو دراوردن.
اولی که اصلا آرایه می بینه قهر می کنه، دومی هم اشیای ابسترکت رو قبول نداره.
الانم در حال نصب ویژوال استودیو هستم با حجم 40 گیگ ناقابل!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.