在单个项目中将C#与C ++结合使用

时间:2011-07-23 12:22:43

标签: c# c++

我被分配了一个项目,其中有两个部分:

  1. 数据库编程
  2. 游戏编程
  3. 我喜欢数据库编程,后来我的伙伴。但我对C-sharp数据库编程很友好,因为使用Visual Studio非常有效。但他在C ++方面有游戏经验。

    我们的目标系统是Windows 7,数据库是Sql Server Database,游戏可以是C或C ++。 我们将在Windows窗体中创建一个启动游戏的链接。

    如何在不改变合作伙伴的情况下解决此问题?

5 个答案:

答案 0 :(得分:2)

从技术角度来看,可以用多种语言编写项目。从实际的角度来看,这不是一个好主意 如果这是一个不会被强化的小项目,将会写一次并忘记,那就没关系了,否则不行 你不一定需要改变合作伙伴,你们中的一个人只需要站起来说他们会跳过学习曲线。作为程序员,您需要能够以所需的任何语言工作 有许多因素决定使用哪种语言/库。写下它们的优点和缺点,并决定哪个对您的应用程序最有意义。同意一旦这个问题得到解决,那么该主题将不会再回来。也许找一个中立的仲裁员,你可以选择为你决定 合作伙伴不仅仅是以给定语言编写代码的能力。编码部分是项目的一小部分。

答案 1 :(得分:1)

我建议查看Managed c++ and the /clr compilation switch for c++。使用托管c ++,您可以在适当的地方使用.net对象公开您所需的.net世界,但在内部使用本机c / c ++代码。

托管c ++也有很多方法可以有效地与.net集成,例如对象固定(没有gc重定位)

使用/ clr编译的c ++可以从任何.net语言中使用,就像普通的.net程序集一样。以这种方式编译的c ++代码也可以像使用其他.net语言那样使用任何.net程序集。

答案 2 :(得分:0)

您还没有提供有关此游戏的更多详细信息,但是您不能从WinForms应用程序中Process.Start游戏并向其传递从数据库中获取的必要参数吗?

答案 3 :(得分:0)

另一种选择是将数据库包装在用.NET开发的COM对象中,如果用C ++编写的游戏可以消耗它。

答案 4 :(得分:0)

我正在开发一个项目(最近完成了一个类似的项目),它使用C ++ / CLI组合了C#和C ++库。数据收集和信号处理都是用C ++(你的游戏片)编写的,形式,xml和绘图都是用C#(你的db片段)完成的。 C ++ / CLI处理了两种语言之间的阻抗不匹配。实际上,我最终只是在C ++ / CLI中编写了一个中介类(我觉得用C#编写它会更愉快)。我认为这对你也有用。唯一的问题是C ++ / CLI不是C ++。实际上我建议C#程序员学习C ++ / CLI而不是C ++程序员。我的理由是,语言之间的语法差异相当微不足道,C#程序员可能比C ++程序员更快地学习它们,以便掌握托管代码和.NET的全部内容。也就是说,如果你们都对C ++ / CLI作品负责,你将拥有解决它所需的所有技能,并且只需要最少的痛苦。