タイトル : Re^5: return値で 投稿日 : 2008/05/26(Mon) 12:29 投稿者 : 魔界の仮面弁士
> char test[] = "あいう"; > return (char)test; > この時点で(char)testの値は文字化けしてしまっています。 文字列の受け渡しをする場合は、VB 側で管理された変数領域に対して、 DLL 側から値を書き込んでいく、という手法が一般的です。 (そのため、戻り値ではなく、引数を使って処理される事が多いです) 上記では、char test[] をそのまま返そうとしているようですが、その配列メモリを 管理しているのは DLL 側であって、VB 側では無い事に注意してください。 もし、VB 側から String 型で受け取れるようにしたいのであれば、 char[] ではなく、BSTR (OLECHAR FAR * )を使うようにしてください。 http://www2.wbs.ne.jp/~kanegon/doc/bstr.txt |