2009-04-10 20 views
4

C#でGUIを作ることはできますが、CやC++で実際のプログラムを作ることは可能です。C#GUIフロントエンド

いいねえチャットアプリケーションを作りたいと思います。インターフェイスをC#にしたい。しかし、私はCで実際のコードをすべて作りたいです。 これは可能ですか?

私は、誰もが情報の任意のより良いようなものを持っているんhttp://www.google.com/search?hl=en&q=P%2FInvoke&btnG=Google+Search&aq=f&oq=

を見つけましたか?

答えて

3

絶対に! C#winformは、管理されたCまたはC++のdllを呼び出すことができます。詳細はP/Invokeを参照してください。

編集:フロントページのP/Invokeに良いスレッドがあります。 :)

+0

+1は私の質問の答えにリンクしています。 – Kredns

+0

...ああ、いくつかの良い情報も! – Kredns

2

JPの完全に正しい以前の回答を増やして、COMインターフェイスを介してC++コードを公開し、COM/Interop経由でC#で消費することもできます。しかし、幸運。

0

Cでできることはすべて、マネージコードで行うことができます。なぜあなたはCで1つのコンポーネントを構築したいのですが、もう1つはCで構築したいのですか?あなたはソケットについて心配していますか?

しかし、あなたの質問には、あなたは絶対に上記のJPとしてそれをすることができます。

+0

私はそれが禁じられていない限り、C#で半分、Cで半分の意味がないことに意味がないことに同意します。 –

+0

彼は大工に一種のハンマーしか必要としません、仕事のために最高のツールを使います。 、そしてスパイクを運転するためのそり。プログラミングでも同じことが、最良の言語/フレームワークを使用します。 –

+0

IMHO、あなたの声明「Cでできることはすべてマネージコードで行うことができます。 – blitzkriegz

2

である必要があります。 .NET用に既存のコードをすべて書き換える必要はありません。

要するに、C#の既存の(C/C++)コードを使用するには3つの方法があります.P/Invokeはうまく機能します。 C++/CLIは、最も柔軟性を提供します。 3番目の方法はCOMを使用することです。

0

アプリケーションをどのように配布するかによって、展開要件を検討する必要があります。 C++モジュールをお持ちの場合は、.Netフレームワークに加えて、C++ランタイムライブラリに依存します。これは、Win32 APIのP/Invokingだけの場合には問題ありません。 これはあなたにとって重要なことかもしれませんが、私にとって重要なことです。私は自分のアプリでC++レイヤーを取り除き、Win32を直接呼び出すことに頼っていました。

3

あなたは既にあなたに肯定的な答えを与えています。

1つの提案tho:時期尚早最適化は、すべての悪の根源(またはそのようなもの)です。

サイエンスプロジェクトを作成していない限り(実行できるかどうかを確認するために何かをしていない限り)、C#ですべてのことを書きます。 完了したら、十分なパフォーマンスを発揮していないプロジェクトの部分がある場合は、それらの部分を書き換えます。

基本的に、アプリケーションの速度が遅い部分は、ほとんどあなたのものではありません。

+0

@Chrisあなたのブログのエントリーはあなたの間違ったことをあなたに教えるように頼んでいます。この場合、私はあなたの間違いを考えます。 .NETですべてのことを記述しない理由はいくつでもあります。たとえば、彼がC++での作業がより快適で、WPFの柔軟性を望んでいたり、既存のlibなどを持っている場合はどうでしょうか。 –

+0

私はそれを行えます。あなたが最も快適な場所(つまり、ほとんどの場合、私たちがほとんど何をしているか)を書くのは悪いことではありません。そして時にはストレッチ(C++やC#を意味する)が必要な場合もあります。主な目標は「毎回良い」です。 –