2012-10-12 2 views
0

C# ASP.NET을 사용하여 카드 게임을 만드는 프로젝트가 있습니다.이 프로젝트는 사용자가 서로 게임하고 도전 할 수있는 카드 게임 웹 사이트를 만드는 것입니다.C++ AI 엔진과 ASP.NET C# 페이지를 사용하는 카드 게임

내 친구는 C++을 사용하여 AI 엔진을 만들 수 있지만 C#을 통해 해당 엔진과 통신 할 수있는 방법은 브라우저 기반 온라인 게임이어야합니다.

페이지, 스크립트 및 사이트 시스템의 모든 것이 C#에서 구현하기 쉽지만 각 게임의 카드 테이블 (엔진과의 통신)은 내가 할 수없는 것입니다.

어떤 접근 방식을 사용합니까? 제안 사항이 있습니까?

+0

com Interop 살펴보기 –

답변

1

실제로 C#을 C++와 혼합하려면 통신하는 가장 쉬운 방법은 C 인터페이스가 포함 된 C++ DLL을 만드는 것입니다. 그런 다음 P/Invoke를 사용하여이 DLL을 가져올 수 있습니다

[DllImport("ai.dll")] 
static extern int doSomething(int numCardOnTable, int[] cardOnTable, 
    int numCardsOnHand, int[] cardsOnHand, out int cardToPlay); 

또 다른 방법은 직접 C#으로 가져올 수 있습니다 C++ 관리 사용하는 것입니다

namespace CPP_managed_code 
{ 
    public ref class AI 
    { 
    public: 
    int doSomething(int numCardOnTable, int[] cardOnTable, int numCardsOnHand, 
     int[] cardsOnHand, out int cardToPlay) 
    { 
     // ... 
     return 0; 
    } 
    }; 
} 

그리고 당신의 C# 코드 :

using CPP_managed_code; 

// ... 
    unsafe private void myCSharpMethod() 
    { 
    AI ai = new AI(); 
    ai.doSomething(/*...*/); 
    } 

하지만 표준 C++가 아니기 때문에 Managed C++을 사용하지 않는 것이 좋습니다.

+0

감사합니다. – OldTrain