PDA

View Full Version : سوال: مشکل با نمایش کاراکترها در Delphi XE2(کد برنامه ضمیمه شد)



بهروز عباسی
چهارشنبه 01 شهریور 1391, 21:59 عصر
درود به همه
من در حال نوشتن یک برنامه (شخصی) برای کارهای خودم هستم در قسمتی از این برنامه لازم دارم تا لیست کتابخانه ها و توابعی که در برنامه ای(EXE.) که به عنوان ورودی به برنامه من داده میشه ، رو بدست بیارم.
قبلاً این کد رو در Delphi 7 کامپایل کردم و مشکلی نداشت (سمت راست تصویر)، اما حالا که در XE2کامپایل کردم نتیجه شد سمت چپ تصویر.
مشکلچیه؟

91706

با سپاس فراوان از همه دوستان.

بهروز عباسی
شنبه 04 شهریور 1391, 21:45 عصر
من بازم کد برنامه رو چک کردم چیزی پیدا نکردم.
کسی نظری نداره>
اصولاً در چه مواقعی چنین مشکلاتی رخ میده؟
ممنون میشم راهنمایی کنین.

Ananas
یک شنبه 05 شهریور 1391, 01:31 صبح
سلام.
فایل ضمیمه رو دیدم. کدهایی که می نویسی برام جالبه:متفکر:، کلا تو یه فاز دیکه هست و اعتراف میکنم چیزی ازش نمی فهمم:لبخند:. دروغ نگم میترسم برنامه هاتو اجرا کنم چون نمی دونم چی کار میکنه!:لبخند:
چیزی که تو تصویر می بینم به نظر ایراد از فونت باشه بعضی از فونت ها از بعضی حروف پشتیبانی نمی کنن بخاطر همین به این کاراکترها که میرسن به شکل مربع مربع یا شکل های مشابه نمایش میدن. مثلا بعضی از فونت ها از حروف خط فارسی پشتیبانی نمیکنن اینطور میشه. البته خط شما اینجا انگلیسی هست ولی شاید فونت مناسب نیست شایدم چون برنامه رو از ورژن قدیمی آوردی ansi با unicode اشتباه میشه که داره اینطور نمایش میده.

Felony
یک شنبه 05 شهریور 1391, 06:26 صبح
اون کتابخانه peFile رو از کجا گیر آوردی ؟ نه به اینکه نویسندش این رو نوشته و نه به اینکه انقدر مزخرف نوشته !

پروژه اصلاح شد .

بهروز عباسی
یک شنبه 05 شهریور 1391, 11:11 صبح
درود به همه
سلام.

فایل ضمیمه رو دیدم. کدهایی که می نویسی برام جالبه:متفکر:، کلا تو یه فاز دیکه هست و اعتراف میکنم چیزی ازش نمی فهمم:لبخند:. دروغ نگم میترسم برنامه هاتو اجرا کنم چون نمی دونم چی کار میکنه!:لبخند:
نترس با خیال راحت اجرا کن مدتی که دیگه زدم تو خط کرک و امنیت نرم افزار و ... و به همین خاطر خواستم چندتای برنامه برای این منظور بنویسم.


چیزی که تو تصویر می بینم به نظر ایراد از فونت باشه بعضی از فونت ها از بعضی حروف پشتیبانی نمی کنن بخاطر همین به این کاراکترها که میرسن به شکل مربع مربع یا شکل های مشابه نمایش میدن. مثلا بعضی از فونت ها از حروف خط فارسی پشتیبانی نمیکنن اینطور میشه. البته خط شما اینجا انگلیسی هست ولی شاید فونت مناسب نیست شایدم چون برنامه رو از ورژن قدیمی آوردی ansi با unicode اشتباه میشه که داره اینطور نمایش میده.
مشکلش فقط به خاطر نوع داده بوده.
باید Pchar رو به PAnsichar تبدیل می کردم (خروجی که بهم ریخته بود)


اون کتابخانه peFile رو از کجا گیر آوردی ؟
مربوط به یک Binder هستش.

نه به اینکه نویسندش این رو نوشته و نه به اینکه انقدر مزخرف نوشته !
حتماً یک تازه کار مثل من بوده شما به دل نگیر.(..:لبخند:..)


و تقریباً تمام برنامه هایی که خواستم از D7 به XE2 تبدیل کنم این مشکل رو داشتم اما کامپایلر خطای فحشی چیزی نشون میداد توی این برنامه هیچ خبری نبود .
اگه ممکنه بگید در این موارد راه حل خاصی برای پیگیری وجود داره یا باید با تجربه از این مشکلات عبور کرد.

ممنون از همه دوستان به خاطر توجهشون.

Felony
یک شنبه 05 شهریور 1391, 12:07 عصر
اگه ممکنه بگید در این موارد راه حل خاصی برای پیگیری وجود داره یا باید با تجربه از این مشکلات عبور کرد.
راه حل دیباگ کردن کد هست + تجربه .

بعد از دریافت و اجرای اولیه کدی شما اولین کاری که کردم قرار دادن break point قبل از دریافت و پردازش داده های مربوط بود که خیلی راحت تو چند دقیقه فهمیدم تو اون کدها از توابعی استفاده شده که با یونیکد سازگار نیست و برای Typecast کردن هم Data Type مقصد PChar در نظر گرفته شده ، خوب با این تفاصیر که شما گفتی تو دلفی 7 مشکلی نداشته خیلی راحت میشد پی برد که PChar تو دلفی 7 داشته کارش رو درست انجام میداده ( به PAnsiChar اشاره میکرده ) ولی در دلفی XE2 که به PWideChar اشاره میکنه مشکل پیدا شده و با تغییر این Typecast مشکل برطرف شد .