PDA

View Full Version : استفاده از dll در php



moh355
چهارشنبه 18 آذر 1394, 15:08 عصر
سلام دوستان . من یه فایل dll دارم میخوام توی php ازش استفاده کنم . لطفا اگر میشه بگید چطور میتونم استفاده کنم ؟
و هم اینکه وقتی میخوام با دستور regsvr32 یک فایل dll توی ویندوز 7 . 32 بیتی ثبت کنم ارور میده ارورش هم اینه dll file was loaded but entry-point dllregisterpassword was not found . ممنون میشم اگر زحمت بکشید جواب دو تا سوالمو بدید خیلی درگیر کرد :خجالت:

Unique
چهارشنبه 18 آذر 1394, 16:29 عصر
چه dll ی هستش ؟ Regsvr32 مربوط به کتابخونه های COM هستش. دقیق تر باید توضیح بدی.

moh355
چهارشنبه 18 آذر 1394, 18:34 عصر
چه dll ی هستش ؟ Regsvr32 مربوط به کتابخونه های COM هستش. دقیق تر باید توضیح بدی.

یه dll ی که با سی شارپ نوشته شده ... یه برنامه نویس سی شارپ یه dll ی برای یه پروژه ای نوشته حالا من میخوام از اون dll استفاده کنم

joker
چهارشنبه 18 آذر 1394, 19:19 عصر
سلام دوستان . من یه فایل dll دارم میخوام توی php ازش استفاده کنم . لطفا اگر میشه بگید چطور میتونم استفاده کنم ؟
و هم اینکه وقتی میخوام با دستور regsvr32 یک فایل dll توی ویندوز 7 . 32 بیتی ثبت کنم ارور میده ارورش هم اینه dll file was loaded but entry-point dllregisterpassword was not found . ممنون میشم اگر زحمت بکشید جواب دو تا سوالمو بدید خیلی درگیر کرد :خجالت:

برای اجرای دستورregsvr32 در واقع DLLیا بهتر بگیم .OCX باید از نوع COM Object ها و ساختار معمول خودش باشه تا بتونه با این دستور رجیستر بشه ( هر دی ال الی که نمیشه باهاش این کارو کرد :) - کلا کاری به پسوندش نداشته باش... غلط اندازه وقتی میزارن .dll
اگر نوع نرمال OCX باشه به روش زیر میتونی از این دستور برای رجیسترکردنش در ویندوز و نهایتا استفاده در php ازش استفاده کنی
http://www.joeyrivera.com/2009/calling-a-dll-with-php

اگه راهی باشه که هر dllی را بشه توی php استفاده کرد من بلد نیستم ، یعن تا الان که چیزی براش ندیدم.

مهرداد سیف زاده
چهارشنبه 18 آذر 1394, 19:48 عصر
سلام دوستان . من یه فایل dll دارم میخوام توی php ازش استفاده کنم . لطفا اگر میشه بگید چطور میتونم استفاده کنم ؟
و هم اینکه وقتی میخوام با دستور regsvr32 یک فایل dll توی ویندوز 7 . 32 بیتی ثبت کنم ارور میده ارورش هم اینه dll file was loaded but entry-point dllregisterpassword was not found . ممنون میشم اگر زحمت بکشید جواب دو تا سوالمو بدید خیلی درگیر کرد :خجالت:
php یه کلاس DOTNET داره که میتونید متد های dotnet رو در php فراخوانی کنید، بهشون داده بدید و ازش مقدار بگیرید. البته خودم تا بحال این مورد رو تست نکردم ولی لینکهای بعدی رو هم نگاه کن
http://php.net/manual/en/class.dotnet.php

http://tomasp.net/blog/ducktyping-in-phalaner.aspx/
http://stackoverflow.com/questions/27016470/call-a-c-sharp-net-dll-script-using-php
https://social.msdn.microsoft.com/Forums/vstudio/en-US/0ab0c2ef-ff20-4044-9edc-8836d32e0e0f/instantiate-c-class-in-php?forum=csharpgeneral

Unique
پنج شنبه 19 آذر 1394, 03:45 صبح
یه dll ی که با سی شارپ نوشته شده ... یه برنامه نویس سی شارپ یه dll ی برای یه پروژه ای نوشته حالا من میخوام از اون dll استفاده کنم

راه اول :
DLL باید Com Visible باشه ،‌ در ضمن Signed هم شده باشه (به برنام هنویس net. بگی احتمالا میدوهه باید چی کار کنه وگرنه باید VS نصب کنی و خودت براش توضیح بدی)
بعدش با این دستور توی GAC رجیستر میکنی :

gacutil -i DotNet.dll

حالا توی PHP اینطوری استفاده میکنی :

$dotnet = new DOTNET("DotNetDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=07a115ce41e79116", "DotNetDll.MyClass");
$dotnet->SayHello();

Public Token را هم میتونی بری توی Windows Explorer و بزنی C:\Windows\assembly و بعدش اسمش را پیدا کنی و PublicToken را گیر بیاری !

راه دوم (خودم امتحانش نکردم اما شاید جواب بده) :
با دستور زیر dll را نصب کن :

regasm DotNet.dll /tlb:DotNet.tlb
حالا با یک COM Wrapper نصب شده و میتونی مثل DLL های COM توی PHP ازش استفاده کنی.


توی تعطیلات این چند روز یک نمونه توی وبلاگم (http://www.geekfarsi.com) میگذارم البته اگه وقت کنم !!!

moh355
یک شنبه 22 آذر 1394, 17:46 عصر
از تک تک دوستان ممنون که وقت گذاشتن و جواب دادن ...