1

VS2010Expressを使用しています。私が考えたC#で書くことは、オブジェクト指向言語への良い中間ステップでした。私のコードをやや繰り返しにしていることの1つは、C#で複数のクラスの継承を使用できないことです。つまり、クラスAがクラスBとクラスCを継承しているとは言えません。

c#は、ボタンのテキストボックスとダイヤルを備えたウィンドウをすばやく簡単に起動して実行できるため、優れています。MFCライブラリが含まれていないため、これはExpressバージョンのC++では使用できません。

ここで、パラメーターをファイルに保存するC#フロントエンドを設計し、ファイルを読み取り、実行してから、別の(または同じ)c#バックエンドexecで開いて読み取りおよび再生するファイルを保存するC++を実行することを考えました。結果を確認します。しかし、これは、何かを変更したい場合に、常にシーケンス全体を再度実行するのが面倒になります。デバッグは言うまでもなく、おそらくインスタンスを実行する必要があります。

Visual Studio 2012 Express for Desktopの発表を読んで、「C ++、C#、およびVisual Basicプロジェクトを単一のソリューションに組み合わせて、使用可能な任意の言語を使用して単一のアプリケーションを簡単に作成できるようにすることもできます」と述べています。http://blogs.msdn.com/b/visualstudio/archive/2012/09/12/visual-studio-express-2012-for-windows-desktop-is-here.aspx?PageIndex=3

結局のところ、この段階では、wizbankの処理、つまり、C++のMFCでより簡単で提供される特別なボタンの機能/デザインを実行する必要はありません。

私の質問は次のとおりです。Windows7''のExpressforWindowsデスクトップバージョンのVisualStudio2012でこれを試した人はいますか?つまり、相互作用するc ++プロジェクトとac#プロジェクトを組み合わせて、たとえばデバッグ時に、あるプロジェクトから別のプロジェクトにコードをトレースできますか?特別な制限はありますか?つまり、実行可能ファイルを組み合わせるのはあまり使用されないということですが、それ以上のものを期待していますが、どれだけ多いのでしょうか。たとえば、C#で設計されたオブジェクトは、c ++で設計されたオブジェクトをインスタンス化して、入出力を保持するクラスや、c ++クラスで処理され、結果を表示するためにc#コードでアクセス可能なデータなどの他のオブジェクトへの参照を渡すことができますか?

新しいExpressバージョンをダウンロードする前にこれを尋ねています。これは、C#からC ++に移行してから数か月後に戻ると予想されるためです。これは、Visual BasicからCに移行するようなものだと思います。すべての問題に巻き込まれたくありません(私は本当に気にしませんが、それは私が「一見」ac#フロントエンドをC++処理ソリューションと統合することができないことを見つけるために大きな一歩後退するでしょう。

4

1 に答える 1

2

C ++とC#のインターフェイスには3つのオプションがあります。

  1. pinvoke:C#で関数シグネチャを指定し、それらが存在するDLLを指定する属性を指定します。これは、複雑な型を渡す必要がある場合に行うのはかなり面倒です。

  2. COM:C ++ DLLは、C#コードによって呼び出されるCOMオブジェクトを実装します。

  3. C ++ / CLI:単一のC++プロジェクトでマネージC++コードとアンマネージC++コードを混在させることができます。他のライブラリとのインターフェースには非常に便利ですが、少なくともVS 2010では、インテリセンスなどの便利な機能が不足しています。本当にこのルートに行きたいのであれば、静的ライブラリとしてのコアC ++コード、それをラップするC ++ / CLI DLL、およびC#アプリケーションの3つのプロジェクトを作成します。

于 2013-02-19T16:29:27.913 に答える