【发布时间】:2014-04-10 11:08:18
【问题描述】:
我见过:
- Convert BSTR to CHAR* and CHAR* to BSTR in C
- Problems converting BSTR to char *
- Convert BSTR to char*
使用这些问题,我试图通过
将BSTR 转换为 char*
#include "comutil.h"
STDMETHODIMP CServer::Initialise(BSTR strCmdFilePath,
VARIANT_BOOL bDiagErr, VARIANT_BOOL bProcErr, BSTR* RESULT)
{
char *p = _com_util::ConvertBSTRToString(strCmdFilePath);
...
}
但我得到了:
错误 1 错误 LNK2019:无法解析的外部符号“char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)”(?ConvertBSTRToString@_com_util@@YGPADPA_W@Z) 在函数“public: virtual long __stdcall CServer::Initialise(wchar_t) *,short,short,wchar_t * *)" (?Initialise@CServer@@UAGJPA_WFFPAPA_W@Z)
为什么会出现这个错误?
【问题讨论】:
-
查看answer
-
我也看到了这个答案。这并不能解释为什么我会收到上述错误...
-
您似乎没有链接 com 支持库,并且根据您正在构建的 Visual Studio 版本(您应该在问题中包含该版本),您可能会遇到错误用于拉入正确库的 pragma cmets。如果是这样,它是可以纠正的,但首先:出于好奇,调试 和 发布版本是否会出现同样的问题?
-
Working VS2013 是的,发布版本和调试版本也会出现这种情况。
-
好的,最后,您是否使用
wchar_t作为本机类型进行构建?我问是因为我遇到了类似的问题。 This may help.
标签: c++ com type-conversion