DOBON.NETプログラミング道掲示板

No34095 の記事


■34095 / )  Re[4]: 参照dllへの文字列引数をutf8で渡したい。
□投稿者/ ukots 一般人(5回)-(2019/01/13(Sun) 10:29:14)
  • アイコンNo34093に返信(Hongliangさんの記事)
    // 返値がStringなのはメモリリークしそうで怖いなぁ。

    解決策が見えたかな:
    DllImportを使用し
    文字コードをCharSet.Unicodeとし、
    関数の引数をXYZ(ByVAl abc() As Byte, .........) As Stringとし、
    Dim abc() As Byte = System.Text.Encoding.UTF8.GetBytes(目的の文字列 + ChrW(0))として懸案の第三者Dllを動かし、
    返値XYZを一旦dim temp As String =System.Text.Encoding.Unicode.GetBytes(XYZ)とし、
    それを更にDim result As String System.Text.Encoding.UTF8.GetString(temp)としたら関数の返値(utf8)がresult中にUicodeとして文字化けせずに見えました。

    これで問題ないか更に検証してみます。


違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -