无法解析的外部符号 "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)"的解决办法

 使用VS 2008(带sp1)编译一个ATL控件工程,出现下面一个编译错误:

“error LNK2019: 无法解析的外部符号 "wchar_t * __stdcall_com_util::ConvertStringToBSTR(char const *)"(?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z),该符号在函数 "public: __thiscall _bstr_t::Data_t::Data_t(char const*)" (??0Data_t@_bstr_t@@QAE@PBD@Z) 中被引用
”。

 

对付这个错误有两个解决办法:

1.      可以通过改工程设置解决
        Configuration Properties-> C/C++-> Language
Treat wchar_t as Built-in Type = No

同时添加一个附加库:comsupp.lib

2.      或者将工程设置改为:

       Configuration Properties-> C/C++->Language
Treat wchar_t as Built-in Type = Yes

同时添加一个附加库:comsuppw.lib


1、加载静态库文件
  方法一:

  点击“Project -> XXX Properties... -> Configuration Properties -> Linker -> General -> Additional Library Directories",选择静态库文件所在的文件夹(相对目录或绝对目录都行,这些目录只告诉编译器去哪里寻找这些库文件,并没有把那里面的库文件加入工程;若不设置,编译报错:无法打开***文件。)
  点击“Project -> XXX Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies",填写静态库文件的名称。
  方法二:

  点击“Tools -> Options -> Projects and Solutions -> VC++ Directories -> Library files", 选择静态库文件所在的文件夹(绝对目录,这些目录只告诉编译器去哪里寻找这些库文件,并没有把那里面的库文件加入工程;若不设置,编译报错:无法打开***文件。)
  点击“Project -> XXX Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies",填写静态库文件的名称。

  方法三:

  点击“Project -> XXX Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies",填写静态库文件的完整路径(绝对目录+名称)。路径中使用单斜杠“/”。
  方法四:

  使用#pragma comment(lib, “xxxxx.lib”) ”语句,xxxxx.lib是静态库文件的完整路径(绝对目录+名称)。路径中使用单斜杠“/”。

 

2、加载包含文件
  方法一:

  点击“Project -> XXX Properties... -> Configuration Properties -> C/C++ -> General -> Additional Include Directories",选择包含文件所在的文件夹(相对目录或绝对目录都行)。
  方法二:

  点击“Tools -> Options -> Projects and Solutions -> VC++ Directories -> Include files",选择包含文件所在的文件夹(绝对目录)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值