PDA

View Full Version : بر طرف کردن خطای error C2664



SYSMAN
پنج شنبه 08 شهریور 1386, 16:35 عصر
کسی از دوستان می دونه این خطا را

error C2664: 'CMainFrame::SetPaneText' : cannot convert parameter 2 from 'const char [20]' to 'LPCTSTR'

که از خط زیر گرفته می شه

pFrame->SetPaneText(0, "Please click");

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

SetPaneText(int Pane, LPCTSTR Text)

البته می شه به این شکل مشکل را حل کرد

SetPaneText(0, (LPCTSTR)"Please click");

ولی یک راه حل بهتر می خواهم.

saeid5977
شنبه 10 شهریور 1386, 01:11 صبح
سلام
بهترین راهش همینه! مشکلش چیه که راه بهتر میخوای؟

Anti_Evil
جمعه 16 شهریور 1386, 19:29 عصر
برای استفاده های اینچنینی من استفاده از Generic Text Macros رو پیشنهاد می کنم.

برای مثال :


SetPaneText ( 0, _T("Some Text") );

Nima_NF
شنبه 17 شهریور 1386, 21:51 عصر
از آنجایی که در کامپایلر های جدید نوع کامپایل کارکتر ها و رشته ها در properties به طور پیش فرض unicode تعریف می شود شما باید از روش های زیر در تمامی جاهایی که رشته را تعریف می کنید یا نام می برید استفاده کنید و به راحتی هرگاه که بخواهید می توانید با ورود به properties پروژه و حذف گزینه unicode پروژه را به صورت اسکی کامپایل کنید.


SetPaneText ( 0, _T("Some Text") );

یا به شیوه مرسوم مایکروسافت:

SetPaneText ( 0, Text("Some Text") );

ما که نفهمیدیم چرا نوشته ها درست نوشته نمی شن ؟!! هی جابجا می شن.