ふらっと C#,C♯,C#(初心者用) Part126 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0691デフォルトの名無しさん (ワントンキン MM7f-Z7AI)
2017/02/20(月) 11:08:17.98ID:M0lXkX5gM<hoge.dll>
BYTE msg[1024];
BYTE* WINAPI hoge(WORD w)
{
sprintf(msg, "xxx");
return msg;
}
<FormMain.vb>
<DllImport("hoge.dll")>Public Shared Sub hoge(Byval w As Int16) As String
End Function
Dim msg As String = Space(1024)
Call部分-> msg = hoge(0)
dllで領域確保した文字列ポインタをvbで領域確保したString型に代入している部分がおかしいのでしょうか?
同じやり方の別アプリはWindows7でも問題なく動作しているらしいです。
回避策としては、StringBuilderを引数にして情報を取得する方法を考えてますが、原因を知りたいです。
何かヒントを頂けないでしょうか。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています