掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.net VC++.net の構造体配列について (ID:91285)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
他にもっと良い手法があるかもしれませんが、 とりあえず、自己解決できました。本当に長い道のりでした。 貴重なアドバイスを頂いた方々には、本当にありがとうございました。 今後、同じような壁にぶつかった方のために サンプルを書き留めておきます。 結局のところ、C++側でポインタをインクリメントすることで配列を順次移動し、 構造体の要素名から値を取得することができました。 構造体の添字に注目し過ぎた事が遠回りの要因でした。 [VB.net 2003] Public Structure STRUCTSHEET Dim SheetType As String Dim SheetName As String End Structure Declare Auto Function OnAir Lib "vs.dll" Alias "OnAir" ( _ <[In](), Out()> ByRef sts() As STRUCTSHEET) As Integer Private Sub ButtonTest_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonTest.Click Dim sts(1) As STRUCTSHEET With sts(0) .SheetType = "テスト_0" .SheetName = "テストデモ_0" End With With sts(1) .SheetType = "テスト_1" .SheetName = "テストデモ_1" End With RetVal = OnAir(sts) End Sub [VC++.net 2003] typedef struct _STRUCTSHEET { BSTR SheetType; BSTR SheetName; } STRUCTSHEET ; EXPORT int __stdcall OnAir(STRUCTSHEET *sts[]); EXPORT int __stdcall OnAir(STRUCTSHEET *sts[]) { MessageBox(NULL, (LPCSTR)sts[0]->SheetType, "メッセージ", MB_OK); (*sts)++; MessageBox(NULL, (LPCSTR)sts[0]->SheetType, "メッセージ", MB_OK); }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.