PDA

View Full Version : خطای زمان کامپایل



salmanmp
یک شنبه 08 شهریور 1388, 18:03 عصر
وقتی می‌خوام یه برنامه رو کامپایل کنم خطای زیر رو می‌گیرم
Fatal Error: F2051 Unit ComCtrls was compiled with different version of ShlObj.IAutoComplete

این اتفاق زمانی افتاد که یکی از کامپوننت‌های Demo ی خود دلفی رو نصب کردم
کامپوننتش هم ShChangeNotifier بود (لعنت الله علیه)
خطا داد
کامپوننت رو remove کردم، درست نشد
یک‌بار repair کردم درست نشد
یک‌بار از اول نصب کردم دلفی رو نشد (همه‌ی فایل‌هاش رو هم پاک کردم)

چه کنم؟:عصبانی++:

Saeed_m_Farid
دوشنبه 09 شهریور 1388, 09:31 صبح
...کامپوننتش هم ShChangeNotifier بود (لعنت الله علیه)
خطا داد
کامپوننت رو remove کردم، درست نشد
یک‌بار repair کردم درست نشد
یک‌بار از اول نصب کردم دلفی رو نشد (همه‌ی فایل‌هاش رو هم پاک کردم)
چه کنم؟
اینهمه کار انجام دادین؟ بهتر بود اول ببینید چیزی مربوط به Shell (مثلاً ShlObj) تو لیست uses های یونیت های پروژه شما هست؟ اون (ها) رو پاک کنید. البته اگه کامپوننت VCL ای مربوط به Shell رو فرم(ها)تون دارید و میخواهید حتماً داشته باشیدش، موضوع فرق می کنه، حتماً از یه نسخه نامناسب این کامپوننت ها با نسخه دلفی تون استفاده می کنید. (ولی کلاً کامپوننت های شل رو یه پلتفرم دیگه از دلفی هستند و استفاده کردن از اونها پیشنهاد نمیشه)
این مشکل معمولاً وقتی پیش میاد که شما فایل (سورس) pas یونیت مورد استفاده رو ندارید و تنها فایل dcu (کامپایل شده) که کامپایلر ایجاد کرده وجود داره و کامپوننت موردنظر با فایلهای DCU موردنظر سازگاری نداره.

بازم دقیق تر در مورد کامپوننتی که استفاده می کنید و کاری که میخواهید انجام بدین رو بگید بهتر میشه کمک کرد ...

salmanmp
پنج شنبه 12 شهریور 1388, 16:13 عصر
اولا متشکر از پاسخی که دادید


اینهمه کار انجام دادین؟ بهتر بود اول ببینید چیزی مربوط به Shell (مثلاً ShlObj) تو لیست uses های یونیت های پروژه شما هست؟

من یه پروژه‌ی جدید ویندوز فرم اپلیکیشن باز می‌کنم و کامپایل می‌کنم! خطا می‌ده. منظور این که از هیچ کامپوننت خاصی و کتاب‌خونه‌ی خاصی استفاده نمی‌کنم

باز هم متشکر

vcldeveloper
پنج شنبه 12 شهریور 1388, 17:35 عصر
از چه نسخه ایی از دلفی استفاده می کنید؟ دلفی دات نت که نیست؟

شاید هم واقعا فایل ComCtrl شما تغییر کرده باشه.
شما می تونید فایل ComCtrl.dcu در پوشه Lib دلفی را تغییر نام بدید، و فایل ComCtrl.pas در پوشه Source را به پوشه Lib کپی کنید، سپس یک پروژه جدید ایجاد کنید، و نام ComCtrl را به لیست uses اضافه کنید، و پروژه را Build کنید.
این کار باعث می شود که یک فایل ComCtrl.dcu جدید ایجاد شود. حالا می تونید فایل ComCtrl.pas ایی که به Lib کپی کرده بودید را حذف کنید.

ببینید آیا بعد از این کار، مشکل شما برطرف میشه یا نه.

salmanmp
پنج شنبه 12 شهریور 1388, 17:49 عصر
از چه نسخه ایی از دلفی استفاده می کنید؟ دلفی دات نت که نیست؟

شاید هم واقعا فایل ComCtrl شما تغییر کرده باشه.
شما می تونید فایل ComCtrl.dcu در پوشه Lib دلفی را تغییر نام بدید، و فایل ComCtrl.pas در پوشه Source را به پوشه Lib کپی کنید،...
ببینید آیا بعد از این کار، مشکل شما برطرف میشه یا نه.

از دلفی ۲۰۰۹ استفاده می‌کنم. تا قبل از این هم به درستی کار می‌کرد.
فایل ComCtrl.pas یا ComCtrls.pas رو نیافتم. توی دلفی ۷ هست ولی تو ۲۰۰۹ نبود.
گذشته از این من یک‌بار همه رو حذف کردم و دلفی رو دوباره نصب کردم
متشکر

vcldeveloper
پنج شنبه 12 شهریور 1388, 17:58 عصر
فایل ComCtrl.pas یا ComCtrls.pas رو نیافتم. توی دلفی ۷ هست ولی تو ۲۰۰۹ نبود.
یعنی به همراه دلفی 2009 شما هیچ سورسی نصب نشده؟!

salmanmp
پنج شنبه 12 شهریور 1388, 18:06 عصر
یعنی به همراه دلفی 2009 شما هیچ سورسی نصب نشده؟!

چرا. چیزهایی نصب شده از سورس. اما این فایل مورد نظر ما نیست
فایلی که پیدا می‌شه هدر سی هست ComCtrls.hpp. اما پاسکالش رو پیدا نمی کنم.

vcldeveloper
پنج شنبه 12 شهریور 1388, 18:40 عصر
اسمش CommCtrl.pas هست. در مسیر \source\Win32\rtl\win

salmanmp
پنج شنبه 12 شهریور 1388, 18:49 عصر
اسمش CommCtrl.pas هست. در مسیر \source\Win32\rtl\win

گشتم، نبود!
حالا چاره چیه؟ کسی نداره بهم بده؟‌

vcldeveloper
جمعه 13 شهریور 1388, 01:24 صبح
آخه نمیشه که دوست عزیز، یا سورس نصب نیست، یا اگر سورس نصب هست، این فایل هم باید موجود باشه، غیر از اینکه خودتون یا یک برنامه ایی آن را حذف کرده باشه!

در پوشه source\Win32\vcl فایل comctrls.pas نیست؟ دو تا فایل هست، یکی commctrls.pas در پوشه rtl، یکی هم فایل comctrls.pas که مسیر source\Win32\vcl.

salmanmp
جمعه 13 شهریور 1388, 04:11 صبح
الان به کامپیوتر مورد بحث دست‌رسی ندارم
ولی من سرچ کردم، نتیجه‌ای نداشت
همه‌ی حالات رو هم گشتم
نمی‌دونم والا
دوباره هم نصب کردم و هیچ برنامه‌ای اجرا نکردم که بخواد اون فایل ها رو حذف کنه