2

私はウォークスルーを進めており、コントロールをVB6ツールボックスにロードしようとしています。

DLLを参照としてロードできますが、ActiveXコンポーネントとしてロードすることはできません。試してみると、「InteropForms:ファイル[...]はActiveXコンポーネントとして登録できませんでした。」というメッセージが表示されます。

実行時に通常のCOMオブジェクトとしてコントロールを作成できます。

ジョナサン

編集:

RegSvr32を試してみると、次のメッセージが表示されます。

[...]がロードされましたが、DllRegisterServerエントリポイントが見つかりませんでした。このファイルは登録できません。

編集2:

RegAsmに登録すると、コンポーネントのリストに表示されます。ただし、DLLを確認すると、ロード中にエラーが発生します。

4

2 に答える 2

0

完全な答えではありませんが、同じマシンでVB6とVS2010を実行すると、すべてが機能します。コンパイルまたはコンパイル後のステップに、私が見逃している何かがあるはずです。

編集:

さて、あなたがする必要があるregAsmのは/codebase/tlbオプションで実行することです。

編集2:

.NET dllに変更を加えた場合は、必ず再登録してください。

于 2010-07-02T00:13:41.890 に答える
-1

https://www.codeproject.com/Articles/18954/Interop-Forms-Toolkit-2-0-チュートリアル**

  1. 最初にライブラリを登録します

このようにあなたがあなたのvb6プロジェクトにdllファイルを追加したい場合

しないでください


regasm labelwinform.dll /tlb:labelwinform.dll /codebase  


それはdllを登録しません。私はこの問題に直面しているので

解決


regasm labelwinform.dll /tlb:labelwinform.tlb /codebase  


ここに画像の説明を入力してください
vb6プロジェクトメニューに参照を追加->参照vb6プロジェクトメニュー にコンポーネントを追加->コンポーネントここに画像の説明を入力してください

ここに画像の説明を入力してください このようなコントロールのような最終的な ここに画像の説明を入力してください

dllファイルが本番環境に正しく登録されていないため(別のコンピューターまたは顧客のコンピューターにアプリケーションをインストールしているため)、Axtivexコンポーネントを登録できません。したがって、私のアプローチは高度なインストーラーです。これは私の個人的な意見です。

ここに画像の説明を入力してください

于 2021-11-22T11:30:48.627 に答える