[リストへもどる]
一括表示

投稿時間:2002/08/21(Wed) 15:28
投稿者名:田中
Eメール:
URL :
タイトル:
VC++のboolに対応する型
現在VC++でDllを作成したのですが
このDLLをVBで使用したいと思ってます

で現在
DLL側に
Function(bool a);
という関数があるとします.
これをVBで使用するのに
Function(ByVal a as boolean)
としてます

aをtrue,falseにしても同じ結果が出てしまいます.
VC++のboolとVBのbooleanの型は違うためなのでしょうか?

投稿時間:2002/08/21(Wed) 15:50
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re: VC++のboolに対応する型
> VC++のboolとVBのbooleanの型は違うためなのでしょうか?

http://www.microsoft.com/japan/developer/library/VBCon98/vbconconvertingcdeclarationstovisualbasic.htm
をご覧ください。C++のbool型が何バイト(実装依存?)か知らないのでLong型でいいのかどうかわかりませんが、
VCのBOOL型ならVBではLong型になります。(ちなみにVBのBooleanは2バイトです。)

また、VBのTrueは-1、Falseは0となっていますので、
VC++のbool型のtrueの実際の値が1となっていて、その関数の中での処理が、
if ( a == true) というような条件式で処理しているなら、うまくいかないでしょう。
if( a != false )のように処理するとか、
VBから渡す場合は、True、Falseではなく1,0を渡すようにするとかしてはどうでしょうか。

投稿時間:2002/08/21(Wed) 15:54
投稿者名:田中
Eメール:
URL :
タイトル:
Re^2: (解決&お礼)VC++のboolに対応する型
ありがとうございます

> また、VBのTrueは-1、Falseは0となっていますので、

あれからいろいろ調べたところ
そのようですね^^
DLL側をBOOL
VB側をLongに変更して対応させていただきました