从BSTR转换为char *

时间:2014-04-10 11:08:18

标签: c++ com type-conversion

我见过:

  1. Convert BSTR to CHAR* and CHAR* to BSTR in C
  2. Problems converting BSTR to char *
  3. Convert BSTR to char*
  4. 使用这些问题我试图通过

    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)

    为什么我收到此错误?

1 个答案:

答案 0 :(得分:2)

您的项目未链接所需的库。对于Release版本,comsuppw.libcomsuppwd.lib,对于Debug版本,#include <comdef.h> // Added #include <comutil.h> 。请注意,您始终可以在the MSDN article中查看所需的库。它在文章的底部注释。 &#34;头&#34;告诉你你需要什么#include,&#34; Lib&#34;告诉你需要链接的内容。

这个库有一个更简单的方法,嵌入链接器指令的最佳方法就是#include包含#pragma注释的.h文件。修正:

{{1}}