close

控制器中的繁體中文,其實是JIS碼,也就是日文漢字,

目前測試環境是VS2013、0i-F

之前用BCB6時能將JIS碼轉成Big5碼,但在C#卻失敗了,

研判是因為VS自己就先作了第一步處理,轉成了String (Unicode)

我在用BCB寫的時候,轉成Unicode 要先定義它是什麼碼,轉成寬字元(Unicode),對不到表的字要用什麼字元取代

但...VS怎麼知道它原本是什麼碼?或許要用舊一點的版次?

所以... cnc_rdalmhistry5 一抓下來...有些字就已經被 ? 取代了...看來只能建表了...

 

2019.01.24 update

目前得到一個方法,修改fwlib32.cs:

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 4)]
    public class ALM_HIS5_data

...

        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public char[] alm_msg;       /* alarm message */

 

使用:

Focas1.ODBAHIS5 message=new Focas1.ODBAHIS5();

short ret=Focas1.cnc_rdalmhistry5(hand, 41, 50, length, message);

在將 alm_msg 轉換格式,這部分待測試

arrow
arrow
    文章標籤
    程式語言
    全站熱搜
    創作者介紹
    創作者 史克威爾凱特 的頭像
    史克威爾凱特

    史克威爾凱特的部落格

    史克威爾凱特 發表在 痞客邦 留言(1) 人氣()