在編寫刻錄機控制程序的過程當中,調用到的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++水平處於起步階段暫時沒法贅述,以下:函數