2012-03-11 4 views
2

vb6に1つ問題があります。 VB.NET 2005でプロジェクトにComクラスを追加して.tlbファイルを作成しました。私はプロジェクトをビルドし、プロジェクトをビルド中に.tlbファイルと.dllファイルを取得しました。プロジェクトプロパティから "Register for Com interop"を選択してビルドしました。それは自動的に登録され、私はVb6でうまく動作しているそのPCで作成された.tlbファイルを使用することができます。私が別のPCにアプリケーションを展開して実行していると、「エラー429 ActiveXコンポーネントはオブジェクトを作成できません」というエラーメッセージが表示されます。私は何をする必要がありますか?できるだけ早く私を助けてください。上記のエラーのため、私はクライアントにアプリケーションをデプロイできません。エラー "429" AcitveXコンポーネントオブジェクトを作成できません(vb6)

可能な解決策の1つは、ネットワークフレームをクライアントPCにインストールすることです.netフレームワークをインストールすることは決してありません。他のどのソリューションも最も感謝しています。

+1

dllで作成されたNetは、クライアントPC上でネットフレームワークを必要としますが、これは避けられません。 – Dabblernl

答えて

-1

1つのオプションは、展開中にコマンドプロンプトでregsvr32コマンドを使用してSystem Registryにその.tlbファイルを登録する必要があることです。通常、静的ライブラリーは、System Registryに登録されるまで機能しません。
インストール中に、「タイプコンポーネントの登録」や「COMコンポーネントの登録」(特にネットワーク化しているユーザー用)などの多くのプログラムがコンポーネントを登録していることがあります。これらのコンポーネントは、ネイティブのCOM dllとtlbsだけです。展開プロジェクトを作成するときに

ので、使用してシステムレジストリにthode DLLとTLBを登録するには、いくつかのスクリプトログインを追加:

regsvr32 <path to tlb/dll> 

あなたがシステムに登録するTLB /すべてのDLLに対してこのコマンドを呼び出すrecursiveyする必要があります。たとえば、4つのdllと2つのtlbsがある場合、dllとtlbのパスを一度に6回指定する必要があります。

+0

regsvr32が登録されていますが、同じエラーが表示されません – user757321

+0

DllRegisterServerのエントリポイントが見つかりませんでしたが、tlbファイルが正しく登録されました。 – user757321

+0

あなたのtlbは他のDLL/tlbsに依存していますか?実行しているOSは何ですか?開発環境で使用しているtlbの正式バージョンを導入していますか? – Uday0119

6

.NET言語(VB.NETなど)でDLLを作成した場合、ターゲットコンピュータは、DLLを使用するためにに.NET Frameworkがインストールされている必要があります。

これは、VB 6アプリケーションからCOM interopなどを問わず、DLLをどのように利用しているかに関係なく、難しく高速です。 Uday's answerが示唆しているように、COMコンポーネントの登録などのことを心配する前に、先に飛び越す必要があるハードルでもあります。

.NETに依存しない場合は、別の環境を使用してActiveX DLLを作成する必要があります。 C++またはVB 6のいずれかが選択可能です。

関連する問題