PDA

View Full Version : حرفه ای: Build کردن پروژه ی DLL از طریق Command Line



alidehban
یک شنبه 19 آذر 1391, 10:23 صبح
مشکل اصلی اینه که پروژه های عادی رو با DCC32 در شاخه ی BIN در مسیر نصب XE2 کامپایل میکنم و پروژه کامپایل میشه و فایل اجرایی در خروجی ساخته میشه اما به هیچ وجه نمیتونم پروژه ای که نوعش DLL هست رو با این روش BUILD کنم و DLL رو بسازم....

تمام اینترنت و قبلش تالار رو جستجو کردم و DCC32.EXE --HELP هم رو بررسی کردم وقعا نتونستم بفهمم چرا هر پروژه ای کامپایل و بیلد میشه جز DLL که ساخته نمیشه هیچ پیغام خطایی هم ندارم.

از دوستان حرفه ای خواهش میکنم نظری داشته یاشند.
پیشاپیش تشکر فراوان از آقای کرامتی - آقای کشاورز - آقای محمود-N - آقا ماهان و آقای شاهین عشایری که پاسخ ما رو بارها دادند!

راستی DLL چیزی توش نیست فقط یک فایل PAS رو در کنار خودش USE داره و از یک فانکشن داخلش استفاده کرده .
نمونه کدی که استفاده کردم....


DCC32.EXE -Q -B C:\PFOLDER\project.dpr -B

BORHAN TEC
یک شنبه 19 آذر 1391, 10:45 صبح
سلام

هر پروژه ای کامپایل و بیلد میشه جز DLL که ساخته نمیشه هیچ پیغام خطایی هم ندارم.
پروژه ساخته میشه ولی در یک مسیر دیگه! مثلاً در سیستم من و در ویندوز XP به طور پیش فرض فایل در این مسیر قرار می گیره:

C:\Documents and Settings\Ashayeri
برای رفع این مشکل باید Output Directory رو ست کنید. انجام این کار با پارامتر E صورت می گیرد. برای مثال از دستوری مثل این استفاده کنید:

DCC32.EXE "c:\test\test263.dpr" /E"c:\test"
در ضمن در مورد نحوه بکارگیری پارامترها هم بیشتر دقت کنید! :چشمک:

برای یافتن سریع فایل ها هم حتماً از نرم افزار Everything استفاده کنید(استفاده از این ابزار برای هر برنامه نویسی واجب است):
http://www.voidtools.com/

موفق باشید...

alidehban
یک شنبه 19 آذر 1391, 11:27 صبح
از شما تشکر میکنم اما من OUTPUT DIRECTORY ها رو قبلا در خود پروژه تنظیم کردم و مسیر ها هیچکدوم پیش فرض نیست....
منظورتون رو متوجه شدم ولی گیر کارم این نیست.

BORHAN TEC
یک شنبه 19 آذر 1391, 12:13 عصر
با کمی بررسی می توان این موضوع را متوجه شد که IDE دلفی پارامتر ها را از فایل .dproj می خواند و آنها را به کامپایلر می فرستد(دقیقاً شبیه به مثالی که ذکر کردم).

alidehban
دوشنبه 20 آذر 1391, 07:54 صبح
با کمی بررسی می توان این موضوع را متوجه شد که IDE دلفی پارامتر ها را از فایل .dproj می خواند و آنها را به کامپایلر می فرستد(دقیقاً شبیه به مثالی که ذکر کردم).

خب در همون IDE دلفی هر تنظیماتی انجام بدی بنظرت کجا نوشته میشه دوست من؟ میدونم از 2005 به بالا این نوع فایل XML مثل مایکروسافت به پروژه های دلفی هم اضافه شد و...و...و...
اما عرض کردم مشکل این نیست چون پروژه های دیگه رو دارم کامپایل میگیرم با تنظیمات دلخواه.
به هر صورت ممنون

Felony
دوشنبه 20 آذر 1391, 08:07 صبح
اون پروژه ای که مشکل داره رو ضمیمه کنید .

alidehban
دوشنبه 20 آذر 1391, 08:32 صبح
دوستان مشکلم حل شد و به شدت ساده بود و فراموشکاری خودم تا حدی باعثش بود.
مشکل در قسمت USE ها بود. در دلفی 7 ما بطور مثال library ها رو به شکل MATH و SYSUTIL و .... میاوردیم ، البته الانم خود دلفی میفمه ولی من احتمالا برای اینکه در زمان cammand line compiling هم اینو به دلفی بفهمونم نیاز به پارامترهایی داشتم که نمیدونم چیست! به هر حال فقط قسمت USE رو که مثل مایکروسافتیا شده که اول اسم NameSpace رو میارن بعد library وقتی اصلاح کردم کامپایل شد.
در واقع StrUtils رو تبدیل به System.StrUtils کردم و حل شد. اما اگه کسی میدونه این سازگاری رو که خودش این موضوع رو بفهمه ، چطور میشه در command line به کامپایلر فهموند بد نیست اینجا بگه تا استفاده کنیم.
تشکر از دوستانی که لطف فرموده راهنمایی نمودند.