VC: ConvertBSTRToString使用时可能出现无法链接(Lind 2001)的问题

来源:互联网 发布:lync for mac 2016 编辑:程序博客网 时间:2024/06/05 18:23
VC: ConvertBSTRToString使用时可能出现无法链接(Lind 2001)的问题

http://www.cnblogs.com/liangbin/articles/2106189.html

  无法链接,必是lib静态库的问题。

  该函数引用时的一般写法:

#include   <comutil.h>  //_com_util::ConvertBSTRToString
#pragma   comment(lib,   "comsupp.lib")  //_com_util::ConvertBSTRToString

strTxt1 
= _com_util::ConvertBSTRToString(bstrTxt1);  //调用例子

  经查阅MSDN文档,发现该函数在Unicode编码中存在相应的Unicode版本的lib文件,而如果此时链接MultiChar多字节版本的lib文件,则会出现错误。

于是,可以使用下面的代码替换:

#include   <comutil.h>  //_com_util::ConvertBSTRToString
#ifdef _UNICODE
    
#pragma   comment(lib,   "comsuppw.lib")  //_com_util::ConvertBSTRToString
#else
    
#pragma   comment(lib,   "comsupp.lib")  //_com_util::ConvertBSTRToString
#endif

  经验总结:遇到函数出问题先搞清楚函数的使用方法。如果在 MSDN 上有解释,先看 MSDN 上的解释,不要一开始就上搜索网站搜索。

原创粉丝点击