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')