您的位置:首页 > 其它

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

2013-03-20 18:09 661 查看
 使用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",选择包含文件所在的文件夹(绝对目录)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐