当前位置: 代码迷 >> VC >> 请问,报不能将“const char [7]”转换为“LPCTSTR”
  详细解决方案

请问,报不能将“const char [7]”转换为“LPCTSTR”

热度:8959   发布时间:2013-02-25 00:00:00.0
请教大虾,报不能将“const char [7]”转换为“LPCTSTR”
代码语句:MFC 中的

CMenu menu;//构造一个菜单对象
menu.CreatePopupMenu();//创建它
GetMenu()->AppendMenuW(MF_POPUP,UINT(menu.m_hMenu),"WinSun");//把它加到菜单末尾,即在末尾增加一个弹出试菜单。
   
    

错误提示: 2 error C2664: “BOOL CMenu::AppendMenuW(UINT,UINT_PTR,LPCTSTR)”: 不能将参数 3 从“const char [7]”转换为“LPCTSTR” c:\documents and settings\xxxx\my documents\visual studio 2005\projects\myproject\studymfc\studymfc\mainfrm.cpp 96


还有最近我在消息处理函数中用这样一个函数“MessageBox(“failedType”)”时也报上面的错误,我已经把工程属性配置为了"使用 Unicode 字符集"了,不是说LPCTSTR是和Unicode 字符集相关定义的吗?怎么还报这种错误?请大虾帮帮忙!

------解决方案--------------------------------------------------------
試試用強制轉換變數型態的方法吧,像這樣(LPCTSTR)"WinSun",若不行再試L"WinSun",再不行試_L"WinSun"。
都不行,請把結果po出來,讓大伙看看。
------解决方案--------------------------------------------------------
GetMenu()->AppendMenuW(MF_POPUP,UINT(menu.m_hMenu),L"WinSun");
MessageBox(L“failedType”)
友情提醒LZ,这帖发到VC/MFC版比较合适
------解决方案--------------------------------------------------------
GetMenu()->AppendMenuW(MF_POPUP,UINT(menu.m_hMenu),_T("WinSun"));
MessageBox(_T("failedType");
LPCTSTR 根据你的项目是否定义了_UNICODE决定实际类型,如果定义了_UNICODE,则他等价于LPCWSTR,否则是LPCSTR.
  相关解决方案