- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBからVCへ渡す構造体の設定について)
VBからVCへ渡す構造体の設定について
このQ&Aのポイント
- VB2005からVCで作られたDLLをコールするときにエラーが出て困ってます。
- 関数のパラメータに構造体を指定して、構造体のメンバの文字列を渡したいけれど、なんかうまく行かないんですよね。
- VB2005だと固定長文字列ってのがサポートされていないとか何とか言うのは分かったけれど、解決方法が不明となっています。アドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
VCで作成した アンマネージドDLLを呼び出す場合にはマーシャリングを行いましょう 構造体の定義を <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _ Public Structure tag_strTemp Public iTemp As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _ Public cTemp As String End Structure といった具合にします # StructLayoutの CharSet引数は環境に合わせて変更してください MSDNの『文字列のマーシャリング』の『構造体に組み込んで参照渡し (char[])。』を参照してみましょう
お礼
返答が遅れてしまって申し訳ないです。 大変参考になりました。 ありがとうございます。