2011-01-15 3 views
0

VB6アプリケーションでサードパーティのActiveX DLLを使用する必要があります。しかし、私はDLLを参照に含め、コードで使用したので、私のアプリケーションを終了するたびにVB6も終了します。サードパーティコンポーネントがIDEをダウンします。これをどうやって防ぐのですか?

なぜこれが起こっているのかを示すログやイベントビューアには何も表示されません。

これを防止する方法はありますか?

Btw、私はベンダーに連絡したが、彼らは.NET製品に焦点を当てているようだ。

+0

あなたはどのコンポーネントについて話していますか? – wqw

+0

@wqw http://www.voipsipsdk.com/ - コンポーネント自体は素晴らしく、唯一のActiveXソリューション(残りは.NET/Java/etc)で見つけることができます。 – AngryHacker

答えて

0

さまざまなことを試してみるとかなりの時間を費やした後、コントロールをアンロードして5秒間停止してからアプリケーションを終了するコードを作成しました。それはトリックを行うように見えた。

1

VBIDEの停止に影響する特定の初期化または終了呼び出しがないため、コンポーネントを正しく使用していない可能性があります。これは、通常、サードパーティのコンポーネントまたはアプリケーションがWin32呼び出しを行うときに発生します。

デバッガを使って実行したアプリケーションがいくつかありましたが、それらは常にVBIDEを終了しました。それでも、リリース版やデバッグ版を正常に実行すると、アプリケーションは正常に動作します。

+0

これは、インストールのサンプルで発生します。 – AngryHacker

0

VB6.exeの場合のみDEPをオフに切り替えてみてください。

また、これは問題、すなわちレジストリのアクセス許可を確認するライセンスであるかもしれない - (管理者として実行を右クリック - >)管理者としてVB6 IDEを実行してみてください

+0

これはWindows XPです。管理者として実行しています。 – AngryHacker

0

私は貿易によってVB6プログラマではありませんよ。私はただのものを使いこなすだけだ。私はサブクラスと呼ばれるこのシナリオについて聞いたことがあります。 pscode.comで検索を実行します。彼らはそれを防ぐ方法に関するコードとチュートリアルの例を持っています。がんばろう。

0

です。私はあなたの痛みを感じます。

.Netコンポーネントに切り替えて、interop経由でVB6から使用できますか?私。 VB.NetでCOM可視ラッパーを書く?

+0

厄介な痛みを鋭いものに置き換えてください。結構です。 – AngryHacker

関連する問題