c++ - #include <comutil.h> 导致错误

标签 c++ clr

VS 2010 C++ CLR 库项目,添加 comutil.h 库时出错

> Error 20  error LNK2001: unresolved
> external symbol "extern "C" long
> __stdcall VariantCopy(struct tagVARIANT *,struct tagVARIANT const
> *)" (?VariantCopy@@$$J18YGJPAUtagVARIANT@@PBU1@@Z)    D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET
> Error 18  error LNK2001: unresolved
> external symbol "extern "C" void
> __stdcall VariantInit(struct tagVARIANT *)"
> (?VariantInit@@$$J14YGXPAUtagVARIANT@@@Z) D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET
> Error 13  error LNK2001: unresolved
> external symbol "void __stdcall
> _com_issue_error(long)" (?_com_issue_error@@$$FYGXJ@Z)    D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET
> Error 10  error LNK2028: unresolved
> token (0A000376) "void __stdcall
> _com_issue_error(long)" (?_com_issue_error@@$$FYGXJ@Z)
> referenced in function "void __cdecl
> _com_util::CheckError(long)" (?CheckError@_com_util@@$$FYAXJ@Z)   D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET
> Error 4   error LNK2028: unresolved
> token (0A0003BC) "extern "C" void
> __stdcall VariantInit(struct tagVARIANT *)"
> (?VariantInit@@$$J14YGXPAUtagVARIANT@@@Z)
> referenced in function "public:
> __thiscall _variant_t::_variant_t(class _variant_t const &)" (??0_variant_t@@$$FQAE@ABV0@@Z)  D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET
> Error 2   error LNK2028: unresolved
> token (0A0003D1) "extern "C" long
> __stdcall VariantCopy(struct tagVARIANT *,struct tagVARIANT const
> *)" (?VariantCopy@@$$J18YGJPAUtagVARIANT@@PBU1@@Z)
> referenced in function "public:
> __thiscall _variant_t::_variant_t(class _variant_t const &)" (??0_variant_t@@$$FQAE@ABV0@@Z)  D:\Projects\AL\Service\ncFlow\ncOPClient.NET\Stdafx.obj ncOPClient.NET

需要

private:
        std::string from_variant(VARIANT& vt)
        {
            _bstr_t bs(vt);
            return std::string(static_cast<const char*>(bs));
        }
        /*
        void to_variant(const std::string& str, VARIANT& vt)
        {
            _bstr_t bs(str.c_str());
            reinterpret_cast<_variant_t&>(vt) = bs;
        }*/

我该如何解决?

最佳答案

尽量包含comdef.h,不要包含comutil.h

关于c++ - #include <comutil.h> 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374953/

相关文章:

c# - 为什么 'Any CPU' 应用程序在 x64 机器上以 x86 运行?

使用 TCP 套接字的 C++ 多客户端聊天

c++ - wxWidgets 和 Dev-C++

c++ - 使用图像传输压缩和 boost 库 C++

C++ ifstream 函数和字段分隔符

c# - 每次调用新方法时触发事件

asp.net - IIS7.5 中 x64 进程的内存限制

c# - 静态构造函数是否作为 CER 运行?

c++ - __cxa_atexit() 和 atexit() 有什么区别

c# - C# 不支持静态索引器吗?