• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBからVCへ渡す構造体の設定について)

VBからVCへ渡す構造体の設定について

このQ&Aのポイント
  • VB2005からVCで作られたDLLをコールするときにエラーが出て困ってます。
  • 関数のパラメータに構造体を指定して、構造体のメンバの文字列を渡したいけれど、なんかうまく行かないんですよね。
  • VB2005だと固定長文字列ってのがサポートされていないとか何とか言うのは分かったけれど、解決方法が不明となっています。アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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[])。』を参照してみましょう

MMR_
質問者

お礼

返答が遅れてしまって申し訳ないです。 大変参考になりました。 ありがとうございます。