【wineで起動しないアプリ】

ubuntu12.10上であるWindowsアプリ(例えば将棋ソフトのボナンザ http://www.vector.co.jp/soft/dl/win95/game/se483656.html )を動かしたいです。

検索して
「wineをインストール」→「csa.exeを右クリックしてwine Windows Program loaderで開く」
という方法を見つけてやってみたのですが、反応がありません。

どのようにしたら動くでしょうか。
※同じ将棋でもK-Shogi http://www.vector.co.jp/soft/winnt/game/se193871.html は起動します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/03/11 15:18:54

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

はじめまして。a-kuma3 と申します。

主題:最強と呼ばれる将棋ソフト Bonanza を、ubuntu の wine 上で動作させる。

--
検索してみると以下のようなブログが見つかりました。
http://shogiubuntu.blog60.fc2.com/blog-entry-11.html

どうやら Bonanza が動作するために必要な VC++ のランタイムが不足しているようです。
そのブログが引用しているこちらのページでは、コマンドで実行した際のエラーについての記載があります。

bonanza を起動するには、下記のようにコマンドを入力します。

$ cd ~/.wine/drive_c/Program\ Files/bonanza
$ /usr/bin/wine Csa.exe

しかし多分、下のようなエラーがでるはずです。

err:module:import_dll Library MFC42.DLL (which is needed by ...)

http://owa.as.wakwak.ne.jp/zope/coreblog/145

コマンドから Csa.exe を実行し同様のエラーが出るかどうかをご確認ください。
同様のエラーが出るようであれば、mfc42.dll と msvcrt.dll を導入することで起動できるようになると思います。

--
先に引用したブログの通りであれば文字化けも起きるはずです。

文字化けがあるので
WineでBonanzaを動かしてみる(その3) - きれいさっぱり、逝くぜ!
こちらを参考に修正した。

http://shogiubuntu.blog60.fc2.com/blog-entry-11.html

そちらについても解決方法が記載されていますので、解決できるのではないかと思います。


--
自分で試していませんので上手く起動できるかどうかは全く自信が無いのですが、お役に立ちますかどうか。

他7件のコメントを見る
id:EdgarPoe

一応検証が終わりました。原因はmsxml3r.dllにもあるようです。両方がないとabc.exeはxmlを読み書きできないようですが、Wineはmsxml3r.dllをうまく動かせない様子です。

--
abc.exeが正常に動いたWindows(msxml3.dllとmsxml3r.dll両方を含む)から
1:msxml3.dllとmsxml3r.dllをの両方を抜くとabc.exeはxmlに保存してある設定を読み込まない
2:msxml3r.dllを抜いてmsxl3.dllのみにしても設定を読み込まない
3:msxml3.dllを抜いてmsxml3.dllのみにしても設定を読み込まない
1・2・3より「abc.exeがxmlに保存された設定を読み書きするには msxml3.dllとmsxml3r.dll両方が必要」との仮説が成り立つ。これを仮説1とする。

4:a-kuma3さんの調査により「DLLやOCXは、wine上のレジストリに登録しなければならないものがある」「msxl3.dllはそれに当たる」らしい。これを事実1とする。

5:msxl3.dllはWine上のレジストリに登録できるが、msxml3r.dllは登録できない(おそらくWine上のレジストリサーバの問題。仕様上の問題か?)。これを事実2とする。

--
仮説1と事実1より、「Wineでabc.exeを動かすには、msxml3.dllとmsxml3r.dll両方をレジストリに登録する必要がある」と考えられる。
しかし、事実2より「msxml3r.dllはレジストリに登録できない」ので、abc.exeがxmlファイルを読み書きすることはできない。
解決策として「何らかの方法を使ってmsxml3r.dllをレジストリに登録する」という方法が考えられるが、おそらくWineの仕様上の問題なので不可能(DllRegisterServer not implemented in DLL msxml3r.dllというエラーから)。
かくなる上は、Wineがバージョンアップしてmsxml3r.dllのレジストリ登録をサポートするようになるまで待つほかはない?

ただし、Wine上では「abc.exeはxmlを読み込むが書き込めない」であり、WindowsXP上でDLLを抜いた結果は「abc.exeはxmlを読み込めないし書き込めない」なので、何かが違うのかもしれない。

--
というわけで、abc.exeを使うのはあきらめて代替ソフトをさがしてみます。なければ手動でxmlを編集しながら使うつもりです。

長いことお付き合いいただき、ありがとうございましたm(_ _)m。この結論が「何か間違ってる」と思う場合は、コメントを追加していただいても結構です。

2013/03/11 14:12:14
id:a-kuma3

う~ん、力及ばず m(_ _)m

msxml3r.dll って、msxml3.dll のリソースのみ(文字列とか、そんなのだけ)版のはずで、regsvr32 が期待しているプログラムの受け口を持ってないんです。
msxml3r.dll は、Windows で regsvr32 を実行しても、こんなんになります。
f:id:a-kuma3:20130311164808p:image

msxml3.dll がきちんと登録できていないってことなのかなあ...

2013/03/11 16:52:46
  • id:EdgarPoe
    Wineのバージョンアップに伴い、問題は解決しました。
    現在、Wineの1.5.27を使っていますが、きちんと保存されています。

    わーい、これでラクチンだー!abc.exeが使えるようになったー!
    (でもWineだからちWindowsネイティブみたいにはいかないけど(笑))

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません