_com_util::ConvertBSTRToString 转化出错
#include <comutil.h>
#pragma comment(lib, "comsupp.lib ")
BSTR bstrValue = ::SysAllocString(L "程序员 ");
char * buf = _com_util::ConvertBSTRToString(bstrValue);
SysFreeString(bstrValue);
AfxMessageBox(buf);
------ 已启动生成: 项目: DLLTest, 配置: Release Win32 ------
正在编译...
DLLTestDlg.cpp
DLLTest.cpp
正在生成代码...
正在链接...
DLLTestDlg.obj : error LNK2019: 无法解析的外部符号 "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *) " (?ConvertBSTRToString@_com_util@@YGPADPA_W@Z) ,该符号在函数 "protected: virtual int __thiscall CDLLTestDlg::OnInitDialog(void) " (?OnInitDialog@CDLLTestDlg@@MAEHXZ) 中被引用
Release/DLLTest.exe : fatal error LNK1120: 1 个无法解析的外部命令
为什么会出这样的连接错误??
[解决办法]
> BSTR bstrValue = ::SysAllocString(L "程序员 ");
-----------------------
改成: BSTR bstrValue = ::SysAllocString( "程序员 "); 试试, 好去掉 L 宏
[解决办法]
#pragma comment(lib, "comsuppw.lib ")试试这个 lib库
[解决办法]
#include <comdef.h>
[解决办法]
char * buf = (char *)(_bstr_t)(bstrValue);
[解决办法]
项目属性
单击“C/C++”。
单击“语言”属性页。
修改“将 wchar_t 视为内置类型”属性改为 否(/Zc:wchar_t-)