- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何正确转换这种方式?
VARIANT varIndex;
CString csIndex;
//Index BSTR
csIndex = (LPCSTR)(_bstr_t)vtIndex;
csIndex.MakeUpper();
if (csIndex.Left(3) == PROCESSUS_TABLE)
{
lIndex = atoi((LPCSTR)csIndex.Mid(3));
if ((unsigned long)lIndex<0)
return E_INVALIDARG;
}
错误信息:
C2664: 'int atoi(const char *)' : cannot convert argument 1 from 'ATL::CStringT<wchar_t,ATL::StrTraitATL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>' to 'const char *'
我找不到解决这个问题的方法,请问有什么好主意吗?
最佳答案
变量'csIndex'是unicoce字符串(wchar_t
),而宏LPCSTR是针对ansi字符串(char
)。
所以你应该使用 Unicode 函数,代码将是:
lIndex = _wtoi((LPCWSTR)csIndex.Mid(3));
这一行没有问题:
csIndex = (LPCSTR)(_bstr_t)vtIndex;
因为智能指针类型_bstr_t可以自动处理char*/wchar_t*转换。
关于c++ - 无法将参数 1 从 'ATL::CStringT<wchar_t,ATL::StrTraitATL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>' 转换为 'const char *',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916601/
我正在尝试更改一些遗留代码。我需要使用 filename.Right(3) 获得的文件扩展名填充 char[] ext。问题是我不知道如何将 CStringT 转换为 char[]。 必须有一个非常简
我想要得到的是一个函数,它生成适用于给定类型字符(char 或 wchar_t)的 CStringT<> 实例。 这是一个人为的例子: #include template inline CStri
我刚刚重新组织了我的 Visual C++ (7.1) 项目的一些库,但遇到了我无法解析的链接器问题。 该项目链接 MFC 以及标准 Windows 库,所有 MBCS 某处,有类似的东西: std:
我正在尝试这样做: #include CHAR Filename; // [sp+26Ch] [bp-110h]@1 char v31; // [sp+36Ch] [bp-10h]@1 int v3
最近在 Visual Studio 2019 中安装了新的 LLVM/clang-cl 工具集,这是一个潜在的出色补充!但是,在构建我的 EXE 和 DLL 文件时,我在链接时收到以下错误: lld-
如何正确转换这种方式? VARIANT varIndex; CString csIndex; //Index BSTR csIndex = (LPCSTR)(_bstr
我是一名优秀的程序员,十分优秀!