主程序用 C++ 编写并打包成 .dll 文件。AC# 编写的 GUI 获取该 .dll 文件并运行和显示,以便人们可以看到正在发生的事情。
我不需要知道该程序是如何工作的(这是一个国际象棋游戏)。我只需要以某种方式将该 GUI 放入网页中,以便人们可以查看 GUI 并从网页播放。
现在我拥有的是一堆文件,包括 C++ 代码和 .dll 以及带有 .exe 文件的 C# GUI。
我是网络世界的新手...请帮帮我。我不知道该怎么办...
——富兰克林
主程序用 C++ 编写并打包成 .dll 文件。AC# 编写的 GUI 获取该 .dll 文件并运行和显示,以便人们可以看到正在发生的事情。
我不需要知道该程序是如何工作的(这是一个国际象棋游戏)。我只需要以某种方式将该 GUI 放入网页中,以便人们可以查看 GUI 并从网页播放。
现在我拥有的是一堆文件,包括 C++ 代码和 .dll 以及带有 .exe 文件的 C# GUI。
我是网络世界的新手...请帮帮我。我不知道该怎么办...
——富兰克林
gui 在 c++ 里面是你的意思吗?如果是这样的话,就我所知,除非你包装你的 c++ dll,否则没有办法将它表达到 web 中,通过将方法包装在 dll 中来构建 web 和界面
为了快速开发,您可以查看 Silverlight,但我个人建议多花一点时间做 int HTML5
。
Silverlight 有利于在 Web 上快速开发 C# UI,但客户端必须安装插件才能运行它(如 Adobe Flash),因此,并非所有平台都支持它。
相反,HTML5 无处不在。Int 只是更丰富的 HTML,具有更多的内置功能和特性,受到广泛的浏览器和系统生产公司的支持。因此,在我看来,它是比 Silverlight 更可靠和可扩展的选择。但生产力较低,有一个学习曲线。
在这两种情况下,您都需要通过提供(我想象的)或棋盘的当前状态或玩家做出的移动来定义“询问”国际象棋库下一步移动的接口。通过获得响应,在客户端呈现它。所以网络流量将只有“MOVE DONE”或“BOARD STATE”发送到服务器,并从服务器获得“NEXT MOVE”信息。
希望这可以帮助。
Silverlight 实际上是最接近 Web 上 C# GUI 的解决方案。由于它也是基于 .NET 构建的,因此您已经熟悉了一些方法。我假设您的 GUI 是在 Windows 窗体中构建的,因此您仍然需要为 Web 重新构建 GUI。虽然在这个问题中有一个描述转换器的答案,但您可以尝试:我可以将基于 Windows 窗体的桌面应用程序转换为 Silverlight 吗?
但是,我建议在 HTML 或 Silverlight 中完全重建 GUI。只是对未来的发展更有意义。我还建议为 C++ DLL 包装器构建一个 REST API,您几乎可以从任何 GUI 调用它,甚至是已经构建的 C#。
我建议使用 ASP.NET MVC4 来构建响应式 Web 应用程序。在服务器端,您可以引用您的 dll,您可能还可以使用部分 GUI 代码并将其更改为控制器代码以将 GUI 输出到 Web 浏览器。