【发布时间】:2019-04-02 11:28:24
【问题描述】:
这个问题可能已经有了答案,但我觉得我需要问它,因为我似乎无法获得代码在 VS Community 2017 上按预期工作所需的答案,因为它有效VS 速成版。
我正在尝试实现从 c 项目中提取的代码,但我看不到如何解决该错误:
“const char *”类型的值不能分配给类型实体 "LPSTR"
和
无法从“const char [7]”转换为“LPSTR”
MENUITEMINFO mii = { 0 };
mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask = MIIM_TYPE;
mii.fType = MFT_STRING;
mii.dwTypeData = _T("item 1"); // error is on this line
mii.dwTypeData = _T("item 2"); // error is on this line also
注意:
- 这是现在 c++ 项目中的 c 代码。它在 VS Express Edition 中工作,但无法在 VS Community 2017 上编译
- VS 速成版我只是将字符集更改为多字节并且它工作但在 VS Community 2017 上似乎没有任何工作,我看不到如何修复代码本身
【问题讨论】:
-
LPCTSTR 相当于 const char *。
-
在 Visual Studio 中,通常使用
T宏将文字扩展为窄字符或宽字符和字符串。如T("item 1")。 -
我已经更新了代码
-
无法重现...这是 C 代码还是 C++ 代码?
-
这是您的确切代码还是类似这样的代码:
const char x[] = "item 1"; info.dwTypeData = x;?
标签: c++ visual-c++