前戯
すべてのWindows開発者の生活の中で、鼻からの血がWineHQがプログラムを実行しているかどうかを理解する必要があるときが来るかもしれません。 なんで? 世界は完璧ではないので、Wineがアプリケーションを正しく消化できるようにする必要があります。 もちろん、バリケードの反対側(Mac、Linuxなど)からのフィードバックを開発者が気にかけている場合は。
動機
私たちのチームがそれを必要とした理由をいくつか挙げます 。
- CHMヘルパーはうんざりしてWineの下に表示されます。
- ベアワインには、MS Jet 4.0とMS MDAC 2.8はありません。
- そして判明したように、Microsoft Core Fonts(Arial、Courier、Timesなど)を使用すると、アプリケーション( 1つと 2つ )の外観が良くなります。
リストは補足できると確信していますが、これはこの記事の目的ではありません。
実装
この方法はエレガントでシンプルです。 健全な開発者なら誰でも、これを自分の好きな言語に適応させることができると思います。
Cの実装:
bool GetWineAvail ()
{
HMODULE h = LoadLibrary( "ntdll.dll" );
bool r = false ;
if (h != NULL )
{
r = GetProcAddress(h、 "wine_get_version" ) != NULL ;
FreeLibrary(h);
}
return r;
}
//使用する
if (GetWineAvail())
{
ShowMessage( "ワインの周り、キャップ!" );
}
他に
{
ShowMessage( "ウィンドウがより透明に見えませんでした。" );
}
Delphiの実装:
関数 GetWineAvail : boolean ;
var H : 枢機inal ;
始める
結果 := False ;
H := LoadLibrary( 'ntdll.dll' ) ;
H > 0の 場合
始める
結果 := Assigned (GetProcAddress(H 、 'wine_get_version' )) ;
FreeLibrary(H) ;
終わり ;
終わり ;
//使用する
GetWineAvail()の場合
ShowMessage( '大丈夫!私たちは Winishにいます!' )
他に
ShowMessage( 'Pure Windows、sir!' ) ;
終わり ;
頑張って