1

これが私のシナリオです。Quicktest Pro (VB) を使用して、実行可能ファイルに組み込んだ Labview VI から ActiveX オブジェクトを作成しています。VI のビルド仕様で ActiveX サーバー オプション (ActiveX サーバー名: "MyLabviewProgram") を有効にし、VI ツール>オプション>VI サーバー: 構成で ActiveX ボックスがチェックされています。

だからQTPで私のコードは次のとおりです。

Set IvApp = CreateObject("MyLabviewProgram.Application")
Set Vi = IvApp.getVIReference("MyLabviewVI.vi")
Vi.Call ParamNames, ParamVals

これを実行すると、最初の行で実行エラーが発生します。

ActiveX コンポーネントはオブジェクトを作成できません: 'MyLabviewProgram.Application'

なぜエラーになるのか分からず困っています。ナショナルインスツルメンツのウェブサイトから、「ActiveXサーバーとして使用されるLabVIEW実行可能ファイル」に関するコミュニティページの1つに踏み込んでいます。この手順は、EXE をビルドした後です。 5. EXE をターゲット上で少なくとも 1 回実行して、.TLB ファイルをアクティブにします。実行可能ファイルを実行しましたが、ターゲットでの意味がわかりません。

これを機能させるために何をする必要があるかについて誰か提案がありますか?

4

1 に答える 1

1

あなたの説明は、vi .exe を正しく作成したように聞こえます。「ターゲット上」はおそらく「ターゲット PC 上」を意味します。EXE は、実行されるたびにすべての COM 登録エントリを Windows レジストリに追加します。

COM 登録エントリがレジストリに存在することをまだ確認していないようです。これがデバッグの最初のステップです。

regedit.exe を実行し、サブキーのMyLabviewProgram.Application下を検索しHKEY_CLASSES_ROOTます。GUID(大きな 16 進数) を含む値を含むサブキーを含むエントリを見つける必要があります。

その「クラス ID」は/キーGUIDの下で参照する必要があります。この参照には、アプリケーションの .EXE ファイルパスを指すデフォルト値を持つサブキーが含まれ、引数が追加されている必要があります。HKCRCLSIDLocalServer32/Automation

これらの手順のいずれかが失敗する可能性があります。これ以上の情報がなければ、どちらが正しいとは言えません。

于 2010-06-07T20:30:58.960 に答える