□投稿者/ ロック (153回)-(2008/12/17(Wed) 15:53:54)
|
■No30027 (たくボン さん) に返信 > >>DLLはActiveX DLLでVB6で作成しています。用途は外部端末からの通信待ちうけで、外部から電文を受信したら、.NETアプリに対しRaiseEventして通知しています。 > > 通信系のポーリングなら、共有メモリとかにキューとかリングバッファ用意してお互いに監視ってのもあると思うけど、>ActiveXDLLの方は変更できないんですよね?
ActiveX DLLの変更はしない方向で考えております。現状DLLでRaiseしたEventハンドラを監視・取得する方法が分からず停滞しております。
■No30018 (渋木宏明(ひどり) さん) に返信 >>DLLはActiveX DLLでVB6で作成しています。用途は外部端末からの通信待ちうけで、外部から電文を受信したら、.NETアプリに対しRaiseEventして通知しています。 > > 「ActiveX コントロール」ではなく、ActiveX DLL なんですね?
はい、ActiveX DLLです。
> てことは、ActiveX DLL 側で、ワーカースレッドを起してるってことですか?
ワーカスレッドのことをあまり分かっておりません。
> であれば、ActiveX DLL が公開するイベントにイベントハンドラを関連付けてやった上で、Main で単純ループさせていれば、イベントハンドラは呼び出されるはずです。 > (ただし、スレッドコンテキストは ActiveX DLL 側のものになるはず)
現在Sub Mainで単純ループしており、Module内の別Sub a() Handles _hoge.HogeEventを作っていますが、単純ループ内ですべき処理が不明な為、ループ中にDLLからRaiseEventしても反応無しです。ループの中でイベントを監視するAPIを利用するのでしょうか?
|
|