C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
No.75314 の関連記事表示
ヒット / 1件
(1-1 を表示)
<<
0
>>
■75314
Re[4]: VB.netからVC++6.0のへの構造体配列参照渡し
□投稿者/ とら -
(2015/03/13(Fri) 11:28:42)
■
No75312
(魔界の仮面弁士 さん) に返信
お手数をお掛けして申し訳御座いません。
再度徹底して見直してまとめなおしました。
>VB EXE 側ではなく、VC++ DLL 側のデバッガで要素数を確認されたのでしょうか。
VB2008側及びVC++側のデバッグ双方にて確認致しました。
VCで受け取った際に既に要素数が1個になっていたようなのでVB2008側での問題だと思いました。
VC++6.0側は内容が理解できなかったのでメソッドの宣言部のみです
VC++6.0側のType1に関しては、「受信データを格納する構造体へのポインタ
または受信データを格納した共有メモリの管理構造体へのポインタ」
と記載がありました
## VC++6.0 ###########
Test1_API int __stdcall Test1(LPSAFEARRAY *Type1)
## VB6.0 #############
-- 宣言部 ----
Declare Function Test1 Lib "TestFunc.DLL" (oType() As Any) As Long
Public Type Type1
Long1 As Long
Long2 As Long
Long3 As Long
End Type
Public oType(0 To 9) As Type1
-- 処理 ----
Dim iRet As Long
iRet = Test1(oType())
## VB2008 アップグレード後にエラー及び警告を排除した状態で渡されたソース #############
-- 宣言部 ----
Declare Function Test1 Lib "TestFunc.DLL" (ByRef oStructure() As Structure1) As Integer
Public Structure Structure1
Dim int1 As Integer
Dim int2 As Integer
Dim int3 As Integer
End Structure
Public oStructure1(9) As Structure1
-- 処理 ----
Dim iRet As integer = -1
iRet = Test1(oStructure1)
'結果としては配列の要素数が1個になっており、値も変更されていない
## VB2008 ご指摘部分反映後 #############
'参照渡しを値渡しに変更しマーシャリングを追加
Imports System.Runtime.InteropServices
Declare Function Test1 Lib "TestFunc.DLL" (<InAttribute(), OutAttribute()> ByVal oStructure() As Structure1) As Integer
'結果としては配列の要素数は10個になったものの値は変更されていない
以上、引き続きお願い致します。
記事No.75306 のレス /過去ログ127より /
関連記事表示
削除チェック/
<<
0
>>
パスワード/
-
Child Tree
-