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

■34099 / 1階層)  参照dllへの文字列引数をutf8で渡したい。
□投稿者/ 魔界の仮面弁士 大御所(1189回)-(2019/01/15(Tue) 16:48:04)
  • アイコンNo34095に返信(ukotsさんの記事)
    > 関数の引数をXYZ(ByVAl abc() As Byte, .........) As Stringとし、

    「第三者のdll」が戻り値として返却する文字列のメモリは
    DLL 側でどのように確保されているのでしょうか。
    また、戻り値の文字列エンコードは何になっているのでしょうか。


    戻り値が ANSI あるいは UTF-16 の場合には、戻り値の As String に
    対して MarshalAs 属性を付与することで受けられる可能性が
    あるのですが、その時、どのような宣言になるべきかは
    DLL 側の実装に依存しますので、DLL 提供元に問い合わせてみてください。

    たとえば DLL 側が SysAllocString している場合は
    UnmanagedType.BStr あるいは UnmanagedType.AnsiBStr を、
    CoTaskMemAlloc している場合は
    UnmanagedType.LPWStr あるいは UnmanagedType.LPStr を、
    MarshalAs することで対処できる可能性があります。

    あるいは戻り値として、As IntPtr が求められるケースもあるでしょう。
    仮に、戻り値のエンコードが UTF-8 な BSTR だとしたら、
    As String では正しく受けられないはずですので、
    As IntPtr で受け取った上で VB 側でデコードし、
    使用後に Marshal.FreeBSTR メソッドで解放するなどの
    追加手順が必要になるかもしれません。(こちらでは検証できませんが)
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←参照dllへの文字列引数をutf8で渡したい。 /ukots →Re[2]: 参照dllへの文字列引数をutf8で渡したい。 /ukots
 
上記関連ツリー

Nomalアイコン 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/12(Sat) 11:01) #34090
Nomalアイコン Re[1]: 参照dllへの文字列引数をutf8で渡したい。 / Hongliang (19/01/12(Sat) 11:05) #34091
│└Nomalアイコン Re[2]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/12(Sat) 13:25) #34092
│  └Nomalアイコン Re[3]: 参照dllへの文字列引数をutf8で渡したい。 / Hongliang (19/01/12(Sat) 17:48) #34093
│    └Nomalアイコン Re[4]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/13(Sun) 10:29) #34095
│      └Nomalアイコン Re[5]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/15(Tue) 15:40) #34097
Nomalアイコン 参照dllへの文字列引数をutf8で渡したい。 / 魔界の仮面弁士 (19/01/15(Tue) 16:48) #34099 ←Now
  └Nomalアイコン Re[2]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/16(Wed) 11:25) #34101
    └Nomalアイコン Re[3]: 参照dllへの文字列引数をutf8で渡したい。 / 魔界の仮面弁士 (19/01/16(Wed) 17:05) #34102
      └Nomalアイコン Re[4]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/17(Thu) 10:16) #34103
        └Nomalアイコン Re[5]: 参照dllへの文字列引数をutf8で渡したい。 / 魔界の仮面弁士 (19/01/17(Thu) 12:42) #34104
          └Nomalアイコン Re[6]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/17(Thu) 17:03) #34105
            └Nomalアイコン Re[7]: 参照dllへの文字列引数をutf8で渡したい。 / 魔界の仮面弁士 (19/01/17(Thu) 19:41) #34106
              └Nomalアイコン Re[8]: 参照dllへの文字列引数をutf8で渡したい。 / ukots (19/01/18(Fri) 09:21) #34107 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -