在编写刻录机控制程序的过程当中,调用到的com组件的方法返回了不少BSTR类型的数据。直接输出到控制台,发现只是将变量的内存地址打印了出来。一番搜索,网上有不少转换的方法。可是试来试去老是会报错误,错误以下:
sql
- 错误 1 error LNK2019: 没法解析的外部符号 "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)" (?ConvertBSTRToString@_com_util@@YGPADPA_W@Z),该符号在函数 _main 中被引用 E:\work\code\project\cpp\cpptrain\cpptrain\cpptrain\train.obj cpptrain
按照那些对BSTR类型作转换的文章所述,须要引入comutil.h这个头文件,而且连接入comsupp.lib。这些我都作了,以下:ide
- #include "comutil.h"
- #pragma comment(lib, "comsupp.lib")
但是依然报错,按照错误查找才发现,须要修改vs的设置,将WChar_t视为内置内省,修改成否,至于缘由为什么,本人C++水平处于起步阶段暂时没法赘述,以下:函数