Halcon v17.x之前的軟體版本都不支援中文路徑。Hdevelop環境下沒問題,但是VC++下會報異常。
read_image (Image, '我是中文.jpg')
bool HalconImageWnd::readImage(const char *ch)
{
try
{
//HalconCpp::SetHcppInterfaceStringEncodingIsUtf8(false);
//HString::FromLocal8Bit(ch);
m_image.ReadImage(ch);
m_image.GetImageSize(&m_width, &m_height);
}
catch (...)
{
qDebug("readImage error");
return false;
}
....
}
從Halcon v18.x開始支援中文路徑,但是要事先調用下面算子來進行設定支援中文解析:
将本地8位編碼的字元串傳遞給HALCON C或HALCON/C++時,必須更改接口預設編碼
HALCON /C調用
HalconCpp::SetHcInterfaceStringEncodingIsUtf8(false);
HALCON/C++調用
HalconCpp::SetHcppInterfaceStringEncodingIsUtf8(false);
或傳遞給HALCON的字元串使用合适的轉換函數,例如
HString::FromLocal8Bit(ch);
---
參考文獻
C:/Program Files/MVTec/HALCON-19.11-Progress/doc/html/manuals/programmers_guide/programmers_guide_0035.html
7.4 Writing a Program with non-ASCII Characters
set_system ('filename_encoding', 'utf8')