用的书上的例子,但是总提示错误
Error 4 error C2440: '=' : cannot convert from 'char [256]' to 'LPWSTR'
把(LPWSTR)加在前面进行强制转换则可以编译通过。
但是显示出现乱码
不知道怎么解决
是不是少加了什么头文件?
多谢
Error 4 error C2440: '=' : cannot convert from 'char [256]' to 'LPWSTR'
把(LPWSTR)加在前面进行强制转换则可以编译通过。
但是显示出现乱码
不知道怎么解决
是不是少加了什么头文件?
多谢
char[256]是一个char型的值,而LPWSTR是指针,这样赋值肯定不行啦。建议楼主把程序贴出来。
static char szAppName[] = "text editor";
static HWND hDlgModeless;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MSG msg;
HWND hwnd;
HACCEL hAccel;
WNDCLASSEX wndclass;
wndclass.cbSize= sizeof (wndclass);
wndclass.style= CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra= 0;
wndclass.cbWndExtra= 0;
wndclass.hInstance= hInstance;
wndclass.hIcon= LoadIcon (hInstance, (LPCWSTR)szAppName);
wndclass.hCursor= LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName= (LPCWSTR)"POPPAD";// 如果不这样强制转换,则会提示错误
wndclass.lpszClassName= (LPCWSTR)szAppName;//同上.
wndclass.hIconSm= LoadIcon (hInstance, (LPCWSTR)szAppName);
RegisterClassEx (&wndclass);
......
Thanks!
typedef struct {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;觉得你用LPCTSTR 强制转换吧,LPCWSTR是宽字符
typedef struct tagWNDCLASSEXW {
UINT cbSize;
/* Win 3.x */
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
/* Win 4.0 */
HICON hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR *LPWNDCLASSEXW;
是LPCWSTR类型的。
WNDCLASSEX wndclass;
自己看一下如果是WNDCLASSEXW
你定义static TCHAR szAppName[] = "text editor";
sizeof(szModuleFileNameTmp)/sizeof(TCHAR) );szModuleFileName.Format(_T("%s"),szModuleFileNameTmp); // szModuleFileName的值出现的问号,所以想问问怎么回事。有人知道为什么会出现问号吗?
用F12跟踪了一下定义,发现宏定义中有WNDCLASSEX 即WNDCLASSEXW。
看来问题不是出在这儿。
现在用studio 2005 team edition中文版的,编译完全通过,什么都不需要修改。
刚用vc,却发现问题如此不可思议。