我见过:
使用这些问题我试图通过
将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)在函数&#34中公开:public:virtual long __stdcall CServer :: Initialise(wchar_t *,short,short,wchar_t * *)" (?初始化@ @@ CServer @ UAGJPA_WFFPAPA_W Z)
为什么我收到此错误?
答案 0 :(得分:2)
您的项目未链接所需的库。对于Release版本,comsuppw.lib
为comsuppwd.lib
,对于Debug版本,#include <comdef.h> // Added
#include <comutil.h>
。请注意,您始终可以在the MSDN article中查看所需的库。它在文章的底部注释。 &#34;头&#34;告诉你你需要什么#include,&#34; Lib&#34;告诉你需要链接的内容。
这个库有一个更简单的方法,嵌入链接器指令的最佳方法就是#include包含#pragma注释的.h文件。修正:
{{1}}