我有一个项目来建立一个使用C# ASP.NET的纸牌游戏,该项目是有一个纸牌游戏网站,用户玩和挑战彼此。
我的朋友可以使用C++构建AI引擎,但我如何通过c#与该引擎通信,特别是它应该是一个基于浏览器的在线游戏。
从页面,脚本和网站系统的一切都很容易在C#中实现,但每个游戏的卡片表(与引擎的通信)是我不能数字的东西。
使用哪种方法,有什么建议吗?
发布于 2012-10-13 02:40:22
如果您实际上想混合使用C#和C++,那么最简单的通信方式可能是创建一个包含C接口的C++动态链接库。然后,可以使用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++,因为它不是标准的C++。
https://stackoverflow.com/questions/12864818
复制相似问题