为什么用LPCTSTR lps = "Hello world";会报错?

来源:百度知道 编辑:UC知道 时间:2024/06/06 21:10:16
小弟刚开始学visual C++.NET.请大哥大姐指教
#include <afxwin.h> //加载afxwin头文件

class MyApp : public CWinApp //继承CWinApp
{
private:
LPCTSTR name;
public:
BOOL InitInstance() //程序入口点
{
CFrameWnd *Frame = new CFrameWnd(); //建立CFrameWnd对象
m_pMainWnd = Frame; //将m_pMainWnd设置为Frame

Frame->Create(NULL,name); //建立窗口
Frame->ShowWindow(SW_SHOW); //显示窗口

return true;
}
MyApp(LPCTSTR a):name(a){}
};
LPCTSTR lps = "Hello world";
MyApp a_app(lps);
镊错信息是:cannot convert from 'const char [12]' to 'LPCTSTR'

把LPCTSTR lps = "Hello world";
改成LPCTSTR lps = L"Hello world";

强制转换下就行了,VC里面经常要用到强制转换
MyApp a_app((LPCTSTR)lps);
不过你这个程序的错误不是在这一句,而是LPCTSTR lps = "Hello world";
因为lps是个指针,指针在给它分配空间之前是不能被赋值的。可以改成
char lps[] = "Hello world";
MyApp a_app((LPCTSTR)lps);