MSYSとMingWでwin32のDLLをつくる

MingWとMSYSはインストールされているものとする。

以下のファイルwinhello.cを作成する。

MSYSシェルからコンパイルする。

成功するとwinhello.dllができる。

これをrundll32.exeを使って実行してみる。

できた。

Ubuntu 8.04でWineを使う

WineはWindowsプログラムをLinuxなどのX Window System上で動かすためのソフトウェアでWindowsプログラムが必要とするWin32APIの実装を提供しています。またネイティブのDLLをWine上に持ってきて使うことも出来ます。

しかし実際にはなかなか動かないことが多かったり、動くとしてもコツが必要だったりするみたいで、そのためかAppDBなどを用意して有名ソフトが動くのかどうかをデータベースとして提供していたりもします。

また「なぜWineが必要なのか」としてWindowsの蔓延に対する警戒として以下のようなことも書いています。

同種の人間達は各個人が同じ脆弱性を共有する。たった一つの脆弱性を見つければその人間達すべてを滅ぼすことが出来る。我々はこのことをからよく学ばなければならない。

(途中省略)

Wineは別の手段でのWin32APIの実装であり違うOSで動作する。Wineは同じ欠点を共有せず、それにより必要な多様さを提供している。

ここではUbuntu8.04を使ってWineを動かしてみます。まずインストール。

$ sudo apt-get install wine

スタートメニューにWineが現れ、その中に「notepad」(メモ帳)がありますので起動してみます。


起動はしましたが、改行が入力できず、日本語も入力できませんでした。

これはとりあえず置いておいて、日本製の有名フリーウェアが動くかどうか試してみます。Terapadというテキストエディタをダウンロードして、~/winapps/terapad/に置いて以下のように実行してみました。

$ cd ~/winapps/terapad
$ wine TepaPad.exe

改行は出来ますが、日本語入力がやはり少しおかしくてキャレットが戻ったりしてしまうようです。

つぎにファイルマネージャのMDIEを同様に起動してみましたが以下のようなエラーがでて起動出来ませんでした。

世界最高峰ダウンロードマネージャirvineを試してみました。

これはちゃんと動くようです。

Continue reading “Ubuntu 8.04でWineを使う”