だから私は、.NET 2.0のコンソールアプリでこのコードを持っている:私はこれを持っている方法でこのWin32 InteropコードをMonoで動作させるには?
[DllImport("kernel32.dll")]
private static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput,
int wAttributes);
[DllImport("kernel32.dll")]
private static extern IntPtr GetStdHandle(uint nStdHandle);
private static readonly IntPtr hConsole;
そして:
const uint STD_OUTPUT_HANDLE = 0xfffffff5;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
と私はAの上にモノを通じて、このアプリを実行しようとすると、 Ubuntu 8.10のクリーンインストールこの例外が発生する:
Unhandled Exception: System.TypeInitializationException:
An exception was thrown by the type initializer for
IMAPShell.Helpers.ColorConsole --->
System.EntryPointNotFoundException: GetStdHandle
at (wrapper managed-to-native) IMAPShell.Helpers.ColorConsole:GetStdHandle (uint)
at IMAPShell.Helpers.ColorConsole..cctor() [0x00000] --- End of inner exception stack trace ---
at IMAPShell.Program.PrintWelcome() [0x00000]
at IMAPShell.Program.Main (System.String[] args) [0x00000]
基本的に私はコンソール出力の色を変更しています。私はこの便利な方法を書いて、テキストの文字列にカラーコードを埋め込むことができ、コードを解析し、別のカラーコードにヒットするまで出力の色を変更します。
これは、Windows上でうまく動作し、私はそれがモノの下で同じことをしたいと思います。誰も私は両方のOSの下で動作するようにしようとすることができますとして、任意の提案をしていますか?