PDA

View Full Version : سوال: بکارگیری dll برای استفاده در سیستم دیگر



manij_mhm
دوشنبه 09 اردیبهشت 1392, 21:26 عصر
سلام دوستان.
برای استفاده از dll نوشته شده در سیستمی که . net نداره، به جز فریمورک به چه چیز دیگری برای نصب نیاز هست؟
برای ساخت این dll از dll های دیگری نیز استفاده شده است.
ممنون می شم اگه کمک کنید.

با تشکر.

aliasghar2
دوشنبه 09 اردیبهشت 1392, 22:08 عصر
به هر حال هر برنامه ای که با دات نت نوشته میشه نیاز به دات نت رو داره حالا چه به صورت exe چه به صورت dll
درضمن باید تمام dll هایی که استفاده کردی کنارش باشه

manij_mhm
سه شنبه 10 اردیبهشت 1392, 19:07 عصر
ممنون ولی یعنی کل ویژوال رو باید نصب کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ این یکم خیر منطقی نیست؟
میدونم یه سری فایل ها باید نصب باشه، به جز فریمورک چیز دیگه ای هم باید نصب کنم؟ یا منطورتون از دات نت کل ویژواله؟
و اینکه فایل dll ها رو کنار هم کپی کنم سیستم خودش میشناسه؟

sohil_ww
سه شنبه 10 اردیبهشت 1392, 19:18 عصر
نه نیاز نیست کل ویژوال نصب کنی فقط کافی دات نت که از اون استفاده کردی نصب بشه !
dll بزار کنار فایل exe خودش ویندوز زحمت می کشه !

manij_mhm
سه شنبه 10 اردیبهشت 1392, 21:18 عصر
منظور از دات نت همون فریمورک هست؟؟؟؟؟؟؟؟؟؟؟؟؟ اگه فریمورکه که نصب کردم ولی مشکل حل نشد.
مشکل اینجاست که من فایل exe ندارم!! یعنی اصلا فایل exe ای نیاز ندارم. فقط dll هست.

esafb52
سه شنبه 10 اردیبهشت 1392, 21:45 عصر
سلام میشه توضیح بدی از این dll چه استفاده میکنی که به فایل اجرایی نیازی نیست!!!!!!!!!!!؟؟؟؟؟؟؟؟


منظور از دات نت همون فریمورک هست؟؟؟؟؟؟؟؟؟؟؟؟؟ اگه فریمورکه که نصب کردم ولی مشکل حل نشد.
مشکل اینجاست که من فایل exe ندارم!! یعنی اصلا فایل exe ای نیاز ندارم. فقط dll هست.

sohil_ww
سه شنبه 10 اردیبهشت 1392, 21:45 عصر
بله منظورم همون بود شرمنده اشتباه بیان کردم!
اونو دیگه نمی دونم !
ولی بعید می دونم فایل های dll به تنها اجرایی بشن !

manij_mhm
سه شنبه 10 اردیبهشت 1392, 22:15 عصر
سلام میشه توضیح بدی از این dll چه استفاده میکنی که به فایل اجرایی نیازی نیست!!!!!!!!!!!؟؟؟؟؟؟؟؟

من از یه برنامه استفاده می کنم که dll های c رو قبول می کنه . به همین خاطر به فایل اجرایی نیازی نیست و فقط به dll نیاز دارم. در واقع میشه گفت یه جورایی فایل اجرایی رو با یه محیط غیر از دات نت ایجاد می کنم. فقط مشکل اینه که این dll روی سیستمی که ویژوال نصب نیست جواب نمی ده.

aliasghar2
سه شنبه 10 اردیبهشت 1392, 22:39 عصر
همونجور که گفته بودم

ه هر حال هر برنامه ای که با دات نت نوشته میشه نیاز به دات نت رو داره حالا چه به صورت exe چه به صورت dll

هرچند برنامه اجرایی بدون دات نت باشه اما dll ها از دات نت استفاده می کنند پس نیاز به دات نت وجود دارد

کامبیز اسدزاده
سه شنبه 10 اردیبهشت 1392, 22:58 عصر
خب عزیز من منظورت اگه اینه که تا وقتی VS نصب نشه اجراء نمیشه ؟ خب این واضحه که ... DLL های شما مبتنی بر .NET هستند باید روی سیستم دات نت رو نصب کنی لازم نیست کل VS رو نصب کنید برای اجراء برنامه :)

manij_mhm
سه شنبه 10 اردیبهشت 1392, 23:15 عصر
خب عزیز من منظورت اگه اینه که تا وقتی VS نصب نشه اجراء نمیشه ؟ خب این واضحه که ... DLL های شما مبتنی بر .NET هستند باید روی سیستم دات نت رو نصب کنی لازم نیست کل VS رو نصب کنید برای اجراء برنامه :)

خوب اگه منظورتون از دات نت فریمورک هست، که در بالا هم گفتم نصب کردم ولی بازم اجرا نمی شه. می خوام بدونم بجز فریمورک به چه چیز دیگه ای نیاز هست؟!!!!!!!!

manij_mhm
چهارشنبه 11 اردیبهشت 1392, 09:57 صبح
همونجور که گفته بودم


هرچند برنامه اجرایی بدون دات نت باشه اما dll ها از دات نت استفاده می کنند پس نیاز به دات نت وجود دارد



بالا هم گفتم فریمورک رو می دونم نیاز داره، نصب هم کردم اما هنوز خطا میده. می خوام بدونم چیز دیگه ای هم هست که نصب نکردم؟؟؟!! و این dll های دیگه ای که استفاده کردم رو در سیستم جدید چطوری معرفی کنم؟ کنار dll خروجی کپی کنم خود سیستم تشخیص میده؟!

کامبیز اسدزاده
چهارشنبه 11 اردیبهشت 1392, 12:10 عصر
دوست من تا شما متن خطا رو ندین ما نگا کنیم نمیتونیم مشکل رو حل کنیم مثل اینه که رفتی دکتر میگی دکتررررررر من دارم از درد میمیرم باید بگی بهش کجات درد میکنه دیگه :ي شما خطای این رو ارسال کنید بررسی کنیم ببینیم کمو کسریش چیه :)

manij_mhm
چهارشنبه 11 اردیبهشت 1392, 13:02 عصر
دوست من تا شما متن خطا رو ندین ما نگا کنیم نمیتونیم مشکل رو حل کنیم مثل اینه که رفتی دکتر میگی دکتررررررر من دارم از درد میمیرم باید بگی بهش کجات درد میکنه دیگه :ي شما خطای این رو ارسال کنید بررسی کنیم ببینیم کمو کسریش چیه :)


مشکل اینه که در سیستمی که فریمورک نصب باشه عملا نمیگه مشکل از کجاست و بدلیل اینکه از این dll در ویژوال استفاده نمی کنم و برای نرم افزار Auotplay می خوام فقط حین استفاده روی کد استفاده از dll خطا می ده. از نظر خودم اصلا نمی فهمه که تابعی از dll رو فراخوانی می کنم. یا درواقع نمی تونه از dll یا tlb که برای ساخت این dll استفاده کردم، استفاده کنه! فایل های dll , tlb رو کنارش کپی هم می کنم ولی فرقی نمی کنه !

البته در بعضی از سیستم ها هم خطای runtime می ده :
103549

h_assefi
چهارشنبه 11 اردیبهشت 1392, 13:20 عصر
سلام دوست عزیز
یک سئوال
شما از Msvcirt.dll با ورژن 7 به بالا توی برنامت استفاده کردی ؟

کامبیز اسدزاده
چهارشنبه 11 اردیبهشت 1392, 13:57 عصر
آخ جوننننن ! شما به عنوان خطاهام دقت نکردی که عزیز دل برادر... فایل DLL شما با ++C نوشته شده :)

MS C++ Runtime رو تست کن ببین حل میشه مشکل ؟ باید بفهمی فایل DLL با چی نوشته شده رانتایمش رو نصب کنی واگرنا جواب نخواهد داد دلیل اینم که رو VS کار میکنه اینه چون با نصب VS هر مخلفاتی روش نصب میشود :)

manij_mhm
چهارشنبه 11 اردیبهشت 1392, 14:24 عصر
سلام دوست عزیز
یک سئوال
شما از Msvcirt.dll با ورژن 7 به بالا توی برنامت استفاده کردی ؟

به صورت مجزا خیر. اطلاعی در مورد این فایل ندارم. مگه اینکه خود ویژوال استفاده کرده باشه !!! این dll در چه زمینه ای کاربرد داره ؟

manij_mhm
چهارشنبه 11 اردیبهشت 1392, 14:32 عصر
آخ جوننننن ! شما به عنوان خطاهام دقت نکردی که عزیز دل برادر... فایل DLL شما با ++C نوشته شده :)

MS C++ Runtime رو تست کن ببین حل میشه مشکل ؟ باید بفهمی فایل DLL با چی نوشته شده رانتایمش رو نصب کنی واگرنا جواب نخواهد داد دلیل اینم که رو VS کار میکنه اینه چون با نصب VS هر مخلفاتی روش نصب میشود :)

دقت کردم دوست عزیز! این dll رو خودم نوشتم !! این خطا تنها روی یکی از سیستم ها داده شده !! روی سیستم دیگه ای که تست کردم گفتم خطایی نمی ده و فقط توابع رو اجرا نکرده از اون خط کد که dll رو فراخوانی کردم خارج میشه، به عبارتی با خطا روبرو می شه ولی متن خطایی در مورد فایل dll که جرا احرا نشد رو نمی ده!!
بزارید جزئی تر بگم!
من یه dll به زبان c# نوشتم! از اونجایی که برنامه مورد نظرم تنها dll هایی به زبان c++ رو قبول می کنه! این dll رو به tlb تبدیل کردم. بعد از اون در c++ استفاده کردم! و یه فایل dll به زبان c++ ایجاد کردم. و از این dll در برنامه autoplayاستفاده کردم!

مشکل منم همینه که این مخلفاتی که رو سیستم من نصبه چیه که رو سیستم های دیگه باید نصب کنم!

h_assefi
چهارشنبه 11 اردیبهشت 1392, 14:51 عصر
یک سئوال دیگه
شما از کامپایلر های MD/ یا GR/ استفاده کردی ؟

کامبیز اسدزاده
چهارشنبه 11 اردیبهشت 1392, 14:54 عصر
یکم پیچیده شد ! روش زیر رو بکار بگیر...

در پروژه ++C قسمت Properties برو قسمت Configuration Properties در اینجا در قسمت Project Defaults گزینه Common Language Support رو روی Pure MSIL Common..../clr:pure قرار بده و DLL رو یکبار Rebuild کن و بعد تستش کن در پروژت و به همین ترتیب گزینه رور وی crl:safe هم بررسی کن همچنین گزینه های Use of MFC و Use of ATL رو بگو ببینم چی قرار دادی ؟‌:)

manij_mhm
چهارشنبه 18 اردیبهشت 1392, 20:20 عصر
یکم پیچیده شد ! روش زیر رو بکار بگیر...

در پروژه ++C قسمت Properties برو قسمت Configuration Properties در اینجا در قسمت Project Defaults گزینه Common Language Support رو روی Pure MSIL Common..../clr:pure قرار بده و DLL رو یکبار Rebuild کن و بعد تستش کن در پروژت و به همین ترتیب گزینه رور وی crl:safe هم بررسی کن همچنین گزینه های Use of MFC و Use of ATL رو بگو ببینم چی قرار دادی ؟‌:)

use of ATL بر روی Not using ATL و Use of MFC بر روی use standard windows Libraries قرار داره.
ممنون میشم اگه یه توضیحی در مورد این گزینه ها بدید.

manij_mhm
جمعه 20 اردیبهشت 1392, 18:02 عصر
دوستان کسی می تونه کمک کنه؟