5

我有一个名为hellof.cs的文件

class MyFirstApp {
static void Main() {
     System.Windows.Forms.MessageBox.Show("Hello, Mono+WinForms!");
   }
}

在 Ubuntu 8.10 上,我执行以下操作

gmcs hellowf.cs -r:System.Drawing.dll -r:System.Windows.Forms.dll
mono hellowf.exe

...它看起来像这样:

替代文字 http://img136.imageshack.us/img136/4674/helloproblemuk5.png


消息的第二部分丢失了。为什么会这样?相同的二进制文件 - hellof.exe - 在 Windows 上运行良好。


更新:这真的很烦人。到目前为止,这是我拥有并尝试使其工作的单声道版本:

    1.9.1 (from official ubuntu repo)
    2.0.1 (from some some 3rd party repo)
    2.2   (wiped every mono pkg and compiled myself)

我当前的单声道版本:

mono --version
Mono JIT compiler version 2.2 (tarball Wed Jan 14 22:58:21 CET 2009)
Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    GC:            Included Boehm (with typed GC)
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  x86
    Disabled:      none
gmcs --version
Mono C# compiler version 2.2.0.0

……有什么线索吗?

4

5 回答 5

3

最后我找到了解决方法。这似乎是 Mono 中与字体渲染相关的错误。当“完整”提示打开时会发生这种情况。我通常是这样的。将其更改为“轻微”或“中等System->Preferences->Appearance->Fonts->Details可以解决问题。谢谢您的帮助!

于 2009-01-14T23:11:42.523 回答
1

在 opensuse 11.0、mono 2.0.1 上工作正常。

请编辑您的问题并输入您正在使用的单声道版本。

于 2009-01-14T19:33:37.533 回答
0

在“你好,Mono+WinForms!”前面加上一个@。看看它是否仍然发生。

于 2009-01-14T16:50:48.967 回答
0

标准调试建议:开始进行小的、受控的更改,看看会发生什么。这将有助于缩小问题的范围。

尝试删除符号:, + !
尝试删除空间。
尝试各种较短的字符串,可能还有一些较长的字符串。

一旦您对 MessageBox 将打印什么和不打印什么有了更好的了解,您就可以开始调试该特定问题,而不是尝试调试“它不起作用!”

于 2009-01-14T22:55:21.230 回答
0

当你更新你的包和源代码时,你更新/编译了 libgdiplus 吗?如果 System.Drawing 和 libgdiplus 版本不同步,我们已经看到了一些时髦的图形问题。

于 2009-01-15T05:45:54.083 回答