前戯
すべての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!' )
;終わり ;頑張って