0

VFP で使用される C# で開発された COM オブジェクトがあります。このオブジェクトは、c# dll を vfp プロジェクトのメイン ディレクトリにコピーして登録することにより、dev システム上の vfp プロジェクトによってロードできます。vfp 環境ではなく、インストールされた vfp プロジェクトを実行しています。つまり、私の開発システムでは vfp は開いていませんが、vs2010 は開いています。ただし、dll プロジェクトは明らかに実行されていません。

vfp も vs もないテスト マシンに移動し、dll をドロップして登録し、実行しようとしても、何も起こりません。残念ながら、vfp でエラーは発生せず、vfp コードを変更できません。

COM オブジェクトがシステム上で実行される前に行う必要があるトリックや、VS が開発システム上の dll で行った可能性のある何らかの種類の登録はありますか?

ご協力ありがとうございます。大変感謝しております。

4

3 に答える 3

1

これは、依存関係が不足している可能性が最も高いことです。オブジェクトを jscript から作成して使用できますか? cmd.exe コンソールでテキスト ファイルを作成し、ほとんどのバージョンの Windows で直接実行できます (このテキスト ファイルに .js ファイル拡張子を付けて保存します)。

var x = new ActiveXObject("YourProject.YourCOMServerName");
x.YourSimpleMethod();

WScript.Echo("done");

これにより、式から VFP が削除され、COM DLL がまったくロードされるかどうかが確認され、次にどこを見ればよいかの手がかりが得られる可能性があります。

于 2012-10-15T21:30:27.040 に答える
0

ばかげた質問ですが、正しい.netフレームワークがテストマシンにインストールされていますか?VFPとはまったく関係がないかもしれません。

http://msdn.microsoft.com/en-us/library/aa645738%28v=vs.71%29.aspxおよびC#でのCOM自動化サーバーの作成も確認する価値があるかもしれません。

于 2012-11-07T14:13:36.210 に答える
0

私も似たような状況です。COM サーバーを (管理者として) 登録する必要があります。

$cd <directory containing COM server>
$com.exe /regserver
于 2012-10-15T21:30:56.527 に答える