tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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
一応,これらはライブラリ使用上の話ですが,識別子として使うのはやめた方が良いでしょう。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。