C++使用OCC读取igs文件时路径为中文时,无法读取的问题
生活随笔
收集整理的這篇文章主要介紹了
C++使用OCC读取igs文件时路径为中文时,无法读取的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項目場景:在中讀取igs文件時如果文件路徑是帶中文就無法讀取
問題描述:
為經(jīng)過修改時,進行監(jiān)控會顯示中文亂碼 aFile = ::_wfopen (aFileNameW.ToWideString(),aFileModeW.ToWideString());原因分析:
經(jīng)過調(diào)試測試發(fā)現(xiàn)是底層的TKernel庫中的上圖代碼出現(xiàn)的問題,ToWideString()函數(shù)的問題,并沒有轉(zhuǎn)化成功。 初步認(rèn)為是寬字節(jié)轉(zhuǎn)化這個函數(shù)的問題解決方案:
提示:重寫了這個函數(shù),修改后如下
(此函數(shù)位于OSD_openfile.cxx中)
UINT nLen = MultiByteToWideChar(936,NULL,theName,-1,NULL,NULL);
WCHAR *wszBuffer = new WCHAR[nLen+1];
nLen = MultiByteToWideChar(936,NULL,theName,-1,wszBuffer,nLen);
wszBuffer[nLen] = 0;
//獲取轉(zhuǎn)為UTF8多字節(jié)后需要的緩沖區(qū)大小,創(chuàng)建多字節(jié)緩沖區(qū)
nLen = WideCharToMultiByte(CP_UTF8,NULL,wszBuffer,-1,NULL,NULL,NULL,NULL);
aFile = ::_wfopen (wszBuffer,
aFileModeW.ToWideString());
總結(jié):使用了WideCharToMultiByte函數(shù)解決了問題,但是重新編譯的時候會有一些報警
總結(jié)
以上是生活随笔為你收集整理的C++使用OCC读取igs文件时路径为中文时,无法读取的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亚马逊的选品规则——新手必看
- 下一篇: 使用Azure Kinect Body骨