アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6.0でコールバック関数みたいなのを呼び出して
別のプロシージャを作成する事ってできないでしょうか?

並列処理をさせたいのですが、あるdllを呼び出しくる際
戻り値が返ってくるのを待ってしまいその部分でラグが発生してしまいます。
そのdllに関してのみ別のプロシージャに投げて戻り値が返ってくるのを待たず、
戻り値をパブリック変数に順次格納していきたいのですがVB6.0 or .netで可能でしょうか?

VB6.0SP3
Windows2k

A 回答 (3件)

ActiveX EXEによる非同期処理の実装はこちらをどうぞ。


http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/00 …

あと、.netであれば、VB.NETでもスレッドが使用可能なので、同一プロセス内で非同期処理が可能です。

参考URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/00 …
    • good
    • 0
この回答へのお礼

大変参考になります。
ありがとうございました。

お礼日時:2002/08/22 10:22

EnumWindowsのような関数にVB6からコールバック関数を渡すあれば可能です。



VB側はこんな感じ
http://vbvbvb.com/jp/gtips/0751/gEnumWindows.html

DLL側(VC6ですか?)の方法は分かりません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
DLL側はVC6.0でコンパイルされたものかと思いますが
ソースはありません。

お礼日時:2002/08/21 22:06

VBではマルチスレッドは基本的に不可能なので、ActiveX EXEを作成して別プロセスにし、イベントで結果を受け取るようにすることで実現可能と思われます。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ActiveX EXEについて全くといっていいほど知らないのですが
変数の受け渡しをする際
普通のEXEファイルの場合は
共有メモリか、ウインドウメッセージを使うのが一般的かと思いますが
ActiveX EXEの場合だと
どのようにイベントを発生させ元のVBのプロセスに伝えるのでしょうか?

お礼日時:2002/08/21 22:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!