2012-05-08 25 views
-2

私はC#でGUIをコーディングする必要があり、ロジックはC++でコーディングする必要があります。後で(両方の言語をリンクするときに)問題が発生しないように、Visual Studio 2010でプロジェクトを作成するにはどうすればよいですか。私は拡張機能やプラグインが必要ですか?C++ロジック、c#gui

+6

何を試しましたか? –

+4

C#プロジェクトとC++プロジェクトを作成する場合は、同じソリューションで実行できます。もちろん、あなたのC++アプリケーションが.NET C++でなければならないか(C#を使わないのはなぜですか?)、そうでなければネイティブC++アプリケーションを作成する必要があります。その場合、アンマネージコードで作業しています(C#プロジェクトで使用する場合は注意が必要です)。基本的には、より多くの文脈を提供してください。 – Styxxy

+0

なぜそれは否定的ですか?それは合法的な設計問題です。 @フェリックス「あなたは何をしようとしたのですか? OPは明らかに最初のステップについて知りたいと思っていますが、これはコード内のバグを追跡することではありません。 – Rotem

答えて

3

まず、c#gui用とC++ロジック用の2つのプロジェクトが必要です。すでに述べたように、それらは同じ解決策に入れることができます。マネージドC++を使用する準備ができているなら、あなたのロジックを従来の方法でUIプロジェクトがアクセスできるクラスライブラリに入れることができます。管理されたクラスのインタフェースに、管理されていない論理でさえ、C++をパックするのはかなり一般的です。

1

C++マネージコードのロジックについては既に説明しました。マネージコードで管理されていないコードを呼び出す場合は、PlaPlatform Invocation Services (PInvoke)を使用できます。それはallows managed code to call unmanaged functions that are implemented in a DLLです。たとえば、このMSDNコードを見てください

// PInvokeTest.cs 
using System; 
using System.Runtime.InteropServices; 

class PlatformInvokeTest 
{ 
    [DllImport("msvcrt.dll")] 
    public static extern int puts(string c); 
    [DllImport("msvcrt.dll")] 
    internal static extern int _flushall(); 

    public static void Main() 
    { 
     puts("Test"); 
     _flushall(); 
    } 
}