使程序平台独立
我正在开发一个 OCR 项目,该项目是在 .net 框架上使用 Visual C++ 开发的。 但由于 .net 是依赖于平台的,所以我想让这个项目独立于平台并支持多个操作系统。
那么有人可以给我一个关于如何去做的提示吗? 谢谢。
I'm working with an OCR project which is developed using Visual C++ on .net framework.
But since the .net is platform dependent I want to make this project platform independent and make it supports to multiple operating systems.
So can some one give me a hint to how to do it.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Mono 是您可能会考虑的 .NET 跨平台实现。
Mono is a cross-platform implementation of .NET that you might consider.
为什么使用在 .Net 上运行的 Visual C++?我建议您要么切换到 Native C++,要么使用更好的 .NET 语言,例如 C#。老实说,我不确定 Mono 是否可以处理托管 C++ 的事情。
如果切换到本机 C++,请务必抽象出任何特定于平台的位。另外,请确保您的应用程序可以在 32 位和 64 位上运行。使用与平台无关的 API,例如 GTK 或 WxWidgets。
如果您切换到 C#,请阅读 Mono 不(也永远不会)支持的一些 API。不要执行任何不安全的代码或 P/Invoke。
无论您选择哪种方式,始终定期在 Windows 和 Linux 上测试您的程序。如果它可以在 Linux 上运行,通常也可以在 Mac 上运行,但我会每天至少在这三个平台上测试一次
Why are you using Visual C++ running on .Net? I would recommend you either switch to Native C++, or use a better .NET language like C#. To be honest I'm not sure that Mono can handle the managed C++ thing.
If switching to native C++, then be sure to abstract away any platform specific bits. Also, be sure that your application will run on both 32 and 64 bit. Use platform-independent APIs such as GTK or WxWidgets.
If you switch to C#, then read up on what some of the APIs are that Mono does not(and never will) support. Do not do any unsafe code or P/Invokes.
And no matter which way you choose, Always regularly test your program on Windows and Linux. If it works on Linux it usually works on Mac too, but I'd test on all three at least once a day
您还可以尝试 Qt。您可以在 Windows 平台上使用 Visual C++,在其他平台 (Mac/Linux) 上使用 g++。它为您提供了比 Mono 更好的 GUI。
You also can try Qt. You can use Visual C++ for Windows platform, and g++ with other platforms (Mac/Linux). It gives you much better GUI than Mono can give.