【发布时间】:2013-02-04 19:03:02
【问题描述】:
我在 Mono 下的 Linux 上运行了我的 Delphi-prism (.NET) 程序。它运行了一段时间并在终端上出现以下错误消息而崩溃。但同样的程序在 Windows 7 上运行良好
谁能告诉我为什么?
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at System.Windows.Forms.XEventQueue+PaintQueue.Dequeue () [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUIX11.GetMessage (System.Object queue_id, System.Windows.Forms.MSG& msg, IntPtr handle, Int32 wFilterMin, Int32 wFilterMax) [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUI.GetMessage (System.Object queue_id, System.Windows.Forms.MSG& msg, IntPtr hWnd, Int32 wFilterMin, Int32 wFilterMax) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Application.RunLoop (Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00000] in <filename unknown>:0
at Millennia.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
【问题讨论】:
-
mono-project.com/Debugging。没有人保证任何 .NET 程序都可以在 Mono 上运行。
-
@LexLi,但这就是微软向公众出售他们的 .NET 的方式——编译一次并在任何地方运行。 :) 这本身不是微软自己的保证吗?
-
微软不是 SUN。它从不说编译一次并在任何地方运行它。请不要误解那家公司:)
-
但是WORA的思路是一样的。就像 SUN 的口号一样,您可以使用 .NET 框架以任何 Microsoft 认证的编程语言进行编程,并使用 CLI 运行它。互操作性不是和WORA有点意思一样吗?事实上,我在某处读到 .NET 的想法来自 SUN 的一次编译,随处运行的想法。
-
你完全搞错了。当 Microsoft 声明 .NET 是跨平台时,这意味着 .NET 应用程序可以在安装了 .NET Framework 的所有 Windows 版本上运行。微软已经实现了这一点。另一方面,Mono 的目标之一是使用 C# 和 CLR 使 Linux 开发更容易。将 .NET 应用程序移植到 Mono 的优先级不高。
标签: linux mono delphi-prism oxygene