使用BSTR类型与string类型之间转换,在VC编译的时候会出现链接库不成功的致命错误。可以在Project-》setting-》link的libary的选项卡下面添加库文件comsuppw.lib 。
但是再次编译可能依然有问题,打开库不成功。那是因为不同的VC版本库的名字不一样,可以作以下的改变:
LINK : fatal error LNK1104: cannot open file "comsuppw.lib "
Error executing link.exe.
原因是数据库中缺少名为“comsuppw.lib ”的文件,该文件是VC9中的,对应VC6中的版本应该是“comsupp.lib ”。从网上找到解决办法,在引用头文件的时候改成如下语句:
#if _MSC_VER>1200
#pragma comment(lib,"comsuppw.lib")
#else
#pragma comment(lib,"comsupp.lib")
#endif
判断编译器版本,如果是6.0,就引用“comsupp.lib ”文件,否则,就引用“comsuppw.lib ”文件。
_MSC_VER为编译器的版本值,具体如下:
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
其中MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。
把之前setting里面的库文件改成与VC版本对应的lib库的名称。