尝试在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
它编译o.k.作为test.exe。试图将其作为
运行mono test.exe
然后导致上面的堆栈跟踪。 这个问题在论坛主题中提到: http://mono.1490590.n4.nabble.com/Not-sure-if-this-is-a-bug-or-my-env-tt4656767.html
我能够在以下环境中完全复制它:
错误报告 http://trac.macports.org/ticket/1936
由于需要配置gdiplus,可能与此问题略有关联 在这个错误报告中提到Mono Cairo和Xquartz尝试合作的方式可能存在问题: http://trac.macports.org/ticket/1936#comment:25
现在很高兴知道如何在不必等待错误报告(9岁......)的情况下解决这个问题。