1

VFP to .Netコンパイラの経験があるか、知識を持っている人はいますか?

私は幅広いVFP9アプリケーションを使用している会社で働いており、.Netでアプリを実行するための迅速な方法を探しています。このコンパイラをチェックして、実行可能なオプションかどうかを確認するように求められましたが、これまでのところ、「HelloWorld」ワールドアプリケーションでさえ実行されないため、正常にコンパイルできませんでした。

最後のコメントを修飾するために:私は本当に単純なFoxアプリを「コンパイル」することができますが、生成された.Net実行可能ファイルは正常に実行されません。ソースを分解してC#に変換しましたが、通常、多くのエラー(100以上)が含まれています。

私はテクノロジー全体を手に負えないように却下したくなりますが、これには多くのサポートがあり、Foxユーザーコミュニティに興奮しているようです。誰かがこれについて何か洞察を持っていますか?

VFPから.Netコンパイラへのリンクは次のとおりです。

4

3 に答える 3

4

私は今、ここで見つけることができる.NetコンパイラへのVFPの経験を持っています。

これは実際には.Netのコンパイラであり、COM相互運用機能やWebサービスとは何の関係もありません。すべては、コンパイラに付属しているSharpDevelopを中心に構築されています。事実上、SharpDevelopを起動して、FoxProPRGと入力できます。完全なインテリセンスがあり、すべてではないにしてもほとんどのFoxコマンドと関数がサポートされています。コンパイルを押すと、反対側に出てくるのは完全な.Netアセンブリです。

アセンブリを実行する場合、VFPのインスタンスはなく、COMの相互運用性も見えません。それはどのように機能しますか?その背後にいる人々は、Fox関数にマップする.Net関数を作成しました。たとえば、StrToFile()を呼び出すと、これは実際に実行されるコードです(Reflectorの驚異によってもたらされます)。

public static void StrToFile(string cExpression, string cFileName)
{
    if (File.Exists(cFileName))
    {
        File.Delete(cFileName);
    }
    FileStream stream = new FileStream(cFileName, FileMode.CreateNew, FileAccess.ReadWrite);
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(cExpression);
    writer.Flush();
    writer.Close();
    stream.Close();
}

これが意味するのは、Foxで非常に生産的であるが、.Netソリューションが必要な場合は、Foxでコーディングして.Netアセンブリを作成できるということです。

ただし、上記のStrToFileの例ほどすべてが適切に実装されているわけではないため、注意が必要です。Foxフォームのようなものをモデル化する方法は、機能しますが、かなりひどいものです(既存のFoxフォームを取得して、SharpDevelopに追加すると、.Netフォームに変換されます)。誰かがこれ以上の詳細を知りたい場合は、これについて詳しく説明します。

于 2009-09-15T07:36:40.373 に答える
0

VFP Developer Studio for .Netのフォームに関する追加情報:eTecnologiaは、SharpDevelopでVFPフォームとして設計されたフォームがオプションでSVGにコンパイルされることを発表しました。これは、IE用のGoogleプラグインがありますが、IEを除くすべてのブラウザーで実行できます。 SVGをSWFに変換します。また、SharpDevelopで設計されたVFPフォームのXAMLを出力することも以前に約束しました。さらに、.Netコントロール、COMコントロール、およびJavaコントロールはすべて、DeveloperStudioに付属するカスタマイズされた#Dで設計されたVFPフォームで使用できるようになります。

于 2009-11-06T05:30:42.393 に答える
0

VFPは、.Net製品に直接「コンパイル」されません。ただし、COMを介してアクセスし、シングルスレッドまたはマルチスレッドのDLLとしてプロジェクトを作成することができます。

define class MyVFPForDotNet as custom OLEPUBLIC
  cSomeProperty = ""
  nOtherProperty = ""

  Function Init()
     cSomeProperty = curdir()

  endfunc

  Function SendBackAMessage()
     return "Hello World"
  endfunc

  function CallWithParms( cParm1 as String, nParm2 as Integer, dSomeDate as DateTime )
     .. do whatever

     return "whatever"
  endfunc

enddefine

次に、それをCOM相互運用機能として追加すると、メソッドとプロパティが.Netで利用できるようになります。関数は、VFP、クエリ、自動化などでほとんどすべてを実行できます。また、XMLAdapterを実行してXML文字列を生成し、単一または複数のカーソルセットを1つの大きなチャンクとして、または異なるメソッドへの複数の呼び出しを介して個別に返すことができます。

幸運を。

ところで....netを介した変換/アクセスを検討しているVFP開発者向けに2つのセミナーが予定されています。1つはhttp://www.oakleafsd.com/にあり、もう1つはhttp://www.eps-software.com/にあります。

于 2009-09-11T13:15:38.357 に答える