タイトル : Re: VC++のDLLからVBへ値受け渡し 投稿日 : 2008/06/19(Thu) 17:22 投稿者 : YuO
> ○VC++のDLLの内容 > typedef struct inf{ > int test1; > int test2; > } __inf; > ○VBでの呼び出し > 標準モジュール > Public Type inf > test1 As Integer > test2 As Integer > End Type > Public Declare Function clhsmain Lib "clhoshu.dll" (PINFO As pinf) As Integer VB6のIntegerは16ビットなので,VC++側はshortに対応させます。 逆に,VC++ (32ビット〜) のintは32ビットなので,VB6ではLongに対応させます。 おそらく,問題点はここにあるかと。 なお,VC++のDLLについて,些細な問題ですが, __から始まる識別子は,全ての使用について予約済みとなっています。 ref) ISO/IEC 9899:1999 7.1.3 Reserved identifiers ref) ISO/IEC 14882:2003 17.4.3.1.2 Global names 一応,これらはライブラリ使用上の話ですが,識別子として使うのはやめた方が良いでしょう。 |