2

.Net3.51アプリケーションからFoxPro9コードを呼び出す最良の方法を教えてもらえますか?

Fox 9で記述されたレガシープロダクションアプリケーションがあります。.Netから再利用できるように、できるだけ多くのロジックとビジネスプロセスを公開したいと思います。理想的には、Foxコードを切り替えて、後で.Netコードに置き換えることができるように、.Netアプリケーションから見えないようにする方法でこれを実行したいと思います。

FoxでCOMDLLをビルドし、それを.Netプロジェクトから参照できると思っていましたが、それは喜ばしいことではありません(コンパイル時のVisual Studioでのさまざまなエラー)。ここでトリックが欠けていますか、それともFox Webサービスを構築するようなことをする必要がありますか?

4

3 に答える 3

2

VFP変換に関するこの記事をご覧ください-.NetおよびASP.NetからのVFPCOMコンポーネントの呼び出し-それはあなたが始めるのに役立つはずです。

于 2009-09-08T13:08:14.443 に答える
2

私は過去に、公開したいfoxproクラスを取得し、Sessionオブジェクトから継承させることで運が良かったです-

クラスBをセッションOLEPUBLICとして定義する

次に、foxpro DLLをビルドし、RegSvr32コマンドで登録します。次に、Visual Studioで、プロジェクトへの参照を追加すると、COMオブジェクトが[COM]タブの下に表示されます。

于 2009-09-08T21:58:14.697 に答える
1

何ヶ月も前、私はFoxProクラスをComとして作成していました。Kraganが提案したように、それらをOLEPUBLICにすると、メソッドが公開されます。許可の目的で、私はそれらをCom +に追加していました(Vista / Windows 7では、これはC:\ Windows \ System32 \ comexp.mscの下にあります)

次に、FoxProComを使用して.Netで; (Com +でcomをポイントします)

// Comに接続します(FoxPro Com(プロジェクト名-プロジェクト情報を参照)およびクラス名タイプObjectType = Type.GetTypeFromProgID( "FoxProComProj.FoxProComClass"、Environment.MachineName.ToString()、true);を使用します。

//Comオブジェクトをアクティブ化しますoDComObject=Activator.CreateInstance(ObjectType);

//Comをインスタンス化しますFoxProCom.FoxProComClassoFoxCom=(FoxProCom.FoxProComClass)oDComObject;

oFoxCom.UseaOLEClass()

// Com oFoxCom=nullをクリアします;

于 2010-01-21T15:43:54.470 に答える