C++ (2012 Express) CString Issues
C++ (2012 Express) CString Issues
可能的重复:
时,请在控制台应用中使用CSTRING
使用VS Express
我对C生锈了,自上次使用它以来,似乎发生了很多变化。
我正在尝试构建VS2008中编写的程序,只有我正在使用2012 Express。因此,自然而然的错误无处不在。
列表上的第一个是CSTRING。不断成为未申报的标识符。从我拿起的东西来看,库中未包含在VS2012 Express中。所以我需要找到解决方法。到目前为止,Google给了我我无法理解的结果(如前所述,我非常生锈)。
谁能为我提供以下代码中更容易的CSTRING替代方案?谢谢!
bool Decoder::decode(LPCWSTR theCaption, TABLE_SUMMARY& table)
{
// If the caption doesn't contain the word "You" return false
CString strCaption = theCaption;
if (-1 == strCaption.Find(L"You"))
return false;
我不使用MFC,所以我无法确定这个建议不会以死亡的方式导致...
您需要自己编译MFC。在这里,我找到了一些详细的建议。正如我说的,我现在不能尝试。
hth
#include <cwchar>
...
if (std::wcsstr(theCaption, L"You") == 0)
return false
为什么不使用基本CRT函数?
bool Decoder::decode(LPCWSTR theCaption, TABLE_SUMMARY& table)
{
if (wcsstr(theCaption, L"You") == NULL)
return false;
...
}
如果您需要进行案例不敏感的情况,我建议使用此WCSIST实现。
请参阅可以替换MFC或切换到STL的WTL,如果您只需要处理CSTRING,则可以使用(例如)STD :: String,添加从接口。
我认为最有趣的是cstring 自动转换为aNSI程序的LPCSTR,或lpcwstr的Unicode。
即。像
class CString : std::string {
public:
operator PCSTR() const { return c_str(); }
operator PCWSTR() const { return c_wstr(); }
};
可以解决您的直接问题(未经测试的代码...)
请注意,这种隐式操作员允许将cstring 直接传递到Winapi。
如果您将其与智能副本分配(在写入)中,MFC已实现(对不起,我不确定std :: string that),您会喜欢Cstring。
您将需要实现任何缺少的CSTRING成员(如果有限,应该很容易...)
当然,任何其他MFC参考都是一个不同的问题...
相关文章:
- 在C++中使用Cstring反转字符串
- 如何转换真实路径 CString c++
- Issues with Win32 ReadProcessMemory API
- __int64 CString 返回错误的值 - C++ MFC
- 如何将 SHFileOperation() 与 CString 路径一起使用
- 在_T值中使用 CString
- 没有大小参数的CString::GetBuffer()做什么
- 如何将 CString 转换为字节 [] 数组?
- Zooming Issues with glutMouseWheelFunc
- 可视化 如何将 CString 值列表添加到 MFC C++ 中的组合框中?
- C++从 std::string 创建 CString 失败
- 对树节点使用 CString 时出现内存泄漏
- C++ 巨大 CString 的串联
- 无法从字符构造CString
- 将旧 cstring 的标记连接成新的 C 字符串
- 如何将 CComVariant bstr 转换为 CString
- Cygwin pkg-config/protobuf filepath issues
- C++ cstring 查找和替换
- 使用_tcscpy_s将 CString 复制到 TCHAR*
- C++ (2012 Express) CString Issues