若使用 Borland C++ Builder 搭配我司 AltairU 、OVK函式庫時,使用需要 String 參數的函式時,例如:
AxImagBW8->LoadFile("F:\\Sample.bmp"); //編譯時, 此行會產生以下錯誤訊息
[C++ Error] Unit1.cpp(17): E2034 Cannot convert 'AnsiString' to 'wchar_t *'
因為 Borland C++ Builder 對資料格式的處理較為嚴謹, 我司 ActiveX 轉為 VCL 時會將 "String型態" 轉為 "wchar_t *型態", 也就是寬字元/字串(unicode)的意思, 解決辦法如下:
1. 利用前綴字 "L" 告知編譯器字串為 (unicode) 型態, 例如:
AxImagBW8->LoadFile(L"F:\\Sample.bmp");
2. 強制將 "String型態" 轉為"wchar_t *型態", 例如:
AxImagBW8->LoadFile((WideString)"F:\\Sample.bmp");
AxImagBW8->LoadFile(WideString("F:\\Sample.bmp"));
註: 已上兩者取一種方式用即可