当尝试在 Mac OS X 上运行一个简单的 Mono 应用程序时,我遇到了以下问题:
Stacktrace:
at (wrapper managed-to-native) System.Windows.Forms.XplatUICarbon.CGDisplayBounds (intptr) <0xffffffff>
at System.Windows.Forms.XplatUICarbon.get_WorkingArea () <0x00035>
示例应用程序的源代码是:
using System.Windows.Forms;
class test {
public static void Main() {
Form fm1 = new Form();
TextBox Tb1 = new TextBox();
Tb1.Text="text";
Tb1.Location = new System.Drawing.Point(10,10);
Tb1.Size=new System.Drawing.Size(80,20);
fm1.Controls.Add(Tb1);
Application.Run(fm1);
}
}
编译
mcs test.cs -r:System.Windows.Forms.dll -r:System.Drawing.dl
它可以编译为 test.exe。试图运行它
单声道测试.exe
然后导致上面的堆栈跟踪。该问题在论坛线程中提到:http: //mono.1490590.n4.nabble.com/Not-sure-if-this-is-a-bug-or-my-env-tt4656767.html
我能够在以下环境中完全复制它:
- Mac OS 10.7.5
- Mac 端口 2.2.0
- 单声道 2.10.9
错误报告位于 http://trac.macports.org/ticket/1936
可能与该问题略有相关,因为需要配置 gdiplus,并且在此错误报告中提到 Mono Cairo 和 Xquartz 尝试一起工作的方式可能存在问题:http: //trac.macports.org/ticket /1936#comment:25
现在很高兴知道如何让这个工作而不必等待错误报告(9 岁......)被修复。