PDA

View Full Version : شرط برای بودن یا نبودن یک فایل DLL



maisam57
دوشنبه 25 دی 1385, 09:22 صبح
با سلام
من توی برنامم یه فایل dll رو ضمیمه application کردم و میخوام هروقت برنامه اجرا میشه چک بشه که فایل dll هست یا نه
سرچ کردم چیز جالبی نبود این کد هم نوشتم ولی کار نداد


if not fileexist('persian.dll') then...

Saeid59_m
دوشنبه 25 دی 1385, 09:29 صبح
کدی که نوشتید درست بوده شاید مسیر کامل فایل رو ننوشتید

maisam57
دوشنبه 25 دی 1385, 09:30 صبح
چرا دوست عزیز مسیر کامل فایل به این صروت نوشته میشه آخه فایل dll ضمیمه فایل اجرایی
یعنی کنار فایل اجرایی هست

dkhatibi
دوشنبه 25 دی 1385, 11:21 صبح
البته fileexists صحیح می باشد.
بعلاوه نبودن Dll را می تونی با Try Except هم کنترل کنی!

Saeid59_m
دوشنبه 25 دی 1385, 13:00 عصر
باز هم مسیر کامل رو بنویس

مثلاً
if not fileexist('d:\pro\persian.dll') then...
مشکلی نداره

maisam57
دوشنبه 25 دی 1385, 14:04 عصر
من میخوام این برنامه رو روی کلاینتهای دیگه ای هم نصب کنم نمیشه که آدرس مسیر سیستم خودم رو بدم

anubis_ir
دوشنبه 25 دی 1385, 14:14 عصر
از تابع API زیر استفاده کنید
LoadLibrary
اگر dll پیدا نشد خطا بر می‌گرداند.

babak869
دوشنبه 25 دی 1385, 18:24 عصر
از مسیر یابی استفاده کن


var a:string;
begin
a:=ExtractFileDir(Application.ExeName)+'\Mydll.dll ';

موفق باشید

vesal
دوشنبه 25 دی 1385, 18:50 عصر
میشه یکم دقیق تر توضیح بدی؟ البته فکر می کنم تابع File Exits برای ین جواب نداده که تو جای مناسبی ازش استفاده نکرد، مثلا ممکنه تو OnCreate فرم ازش استفاده کرده باشی که معمولا باعث ایجاد خطا می شه، حالا ایندفعه داخل یونیت اصلی پروژه قبل از Create فرمی که اوون DLL رو استفاده کردی تابع Fileexits رو استفاده کن احتمال زید مشکلت حل می شه

greenway
دوشنبه 25 دی 1385, 23:47 عصر
از تابع API زیر استفاده کنید
LoadLibrary
اگر dll پیدا نشد خطا بر می‌گرداند.

اگر فایل موجود نباشد ، تابع LoadLibrary مقدار NULL برمیگرداند.



if (LoadLibrary("MYFILE.DLL")==NULL)
{ // Error }

vcldeveloper
سه شنبه 26 دی 1385, 08:57 صبح
میشه یکم دقیق تر توضیح بدی؟ البته فکر می کنم تابع File Exits برای ین جواب نداده که تو جای مناسبی ازش استفاده نکرد، مثلا ممکنه تو OnCreate فرم ازش استفاده کرده باشی که معمولا باعث ایجاد خطا می شه
کار کردن یا نکردن تابع FileExists و امثال اون ربطی به فراخوانی اونها در OnCreate فرم نداره.