人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【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 は起動します。

●質問者: EdgarPoe
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

はじめまして。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

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


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


EdgarPoeさんのコメント
Add Star id:EdgarPoe うむむ…。見事なパスティーシュですね。 自分のスタイルを読んでみると、わかりやすいようなわかりやすくないような…(笑) >mfc42.dll と msvcrt.dll を導入することで起動できるようになる みごとに起動できました。ありがとうございました。 -- ところが、別な問題が。 実はボナンザは例として出したソフトで、本当に動かしたいのは別なソフトなんです。 #ちょっと書くのが恥ずかしいので名前は伏せますm(_ _)m そのソフトは起動するのですが、終了させても設定が保存されないのです。 よく調べてみたところ、**.iniファイルに保存される設定と**.xmlに保存される設定があって、**.iniの方は問題がないのですが、**.xmlの方に保存されるべき設定がうまく行っていない、ということがわかりました。 #そもそも**.xmlファイルが作られていない 検索していくうちに https://wiki.archlinux.org/index.php/Wine_(%E6%97%A5%E6%9C%AC%E8%AA%9E) >いくつかのアプリケーション (Office 2003など)は HTML や XML をパースするための MSXML ライブラリが必要です。lib32-libxml2 をインストールしてください。 という記述に出会ったので 「xmlに設定を保存するにはlib-32-libxml2をインストールすればよい」と考えました。 ・果たしてこの考えはあっているでしょうか? ・あっているとしたら、lib-32-libxml2 はどうやってインストールするのでしょうか? 新しく質問を立てたほうがいいかもしれませんが、もしおわかりになるようでしたらお願いしますm(_ _)m。

a-kuma3さんのコメント
外したら、めちゃくちゃ恥ずかしいと思い、ドキドキしてました (^^; >> 「xmlに設定を保存するにはlib-32-libxml2をインストールすればよい」と考えました。 ・果たしてこの考えはあっているでしょうか? ・あっているとしたら、lib-32-libxml2 はどうやってインストールするのでしょうか? << まず、恥ずかしいソフトが、どういうふうに XML を書き出しているかが問題です。 回答で書いたように、コマンドから、そのソフト起動してみれば、もし、何かの DLL が無くて動かないのだとしたら、そのライブラリ名が分かると思います。 で、lib32-libxml2 って Linux のライブラリですよね。 想像でしかないのですけれど、そのソフトは msxml を使って XML を書き出しているのではないか、と。 必要なライブラリが msxml かどうかを見極めて、32bit なのか 64bit なのかを見極めて、msxml をダウンロードして、インストール、という感じでしょうか たいしたことは書いてないですけど、こんな辺りが参考になりそうな。 http://www.linuxquestions.org/questions/fedora-35/wine-and-msxml-3-0-a-219792/ http://askubuntu.com/questions/167366/msxml-6-0-for-wine msxml は、バージョンがいくつもあり、複数インストールできます(というか、それぞれ別物)。 32bit の msxml6 だったら、こんなところからダウンロード。 http://www.microsoft.com/en-us/download/details.aspx?id=3988 もし、libxml2 が無いのが問題であれば、apt-get でインストール(かな?)。 http://taoru.hateblo.jp/entry/20110428/1304023585 # はっきり言って、自信は無いです (`・ω・´)キリッ

EdgarPoeさんのコメント
いろいろと試してみましたが、今のところ全敗です(笑)。 >コマンドから、そのソフト起動してみれば、もし、何かの DLL が無くて動かないのだとしたら、そのライブラリ名が分かると思います。 一回目の回答の時は、コマンド操作に慣れていなくて結果だけ頂いちゃったのですが、今回は少々本腰を入れてみました。エラーメッセージは err:msxml:mxwriter_QueryInterface interface {00000126-0000-0000-c000-000000000046} not implemented err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 err:ole:create_server class {3e784a01-f3ae-4dc0-9354-9526b9370eba} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {3e784a01-f3ae-4dc0-9354-9526b9370eba} could be created for context 0x17 手が出ません(笑)。 1:とりあえず「mxwriter」で検索してみると http://source.winehq.org/source/dlls/msxml3/mxwriter.c が見つかる 英語は読めないしプログラム言語はもっと読めないので、なんとなくmsxml.dllが怪しいと考えてwineのsystem32にコピー。失敗。 2:http://www.linuxquestions.org/questions/fedora-35/wine-and-msxml-3-0-a-219792/ を参考にしてやってみた 「msiexec / i msxml.msi 」はうまくいったみたい(エラーは出ず)。でも失敗。 3:とにかくmsxml.dllを検索して片っ端からsystem32に入れる。 失敗続き。何種類あるかわからないので… 4:恥ずかしいソフトがきちんと動いたWindowsXPのmsxml.dll(似ている名前のDLL)を検索して全部コピー。 失敗。だんだん何やってるのか自分でもわからなくなってきた 5:WindowsXPからsystem32とsystemにあるDLLを全部コピー。 失敗。むむむ…。 かくなる上は、WindowsXPのWindowsフォルダをまるごとコピーしてきちゃおうかと考え中。こんな荒業、通用するのかなあ。 -- ま、最終手段として「ソフト自体は動くけど設定が保存されない」だけなので、設定は設定xmlファイルを手書きにするという手があります、めんどくさいですけど。 ※libxmlsもインストールしましたがダメでした。もう頭がウニ…。

a-kuma3さんのコメント
>> err:ole:CoGetClassObject no class object {3e784a01-f3ae-4dc0-9354-9526b9370eba} could be created for context 0x17 << この CLSID(中括弧に挟まれた、意味不明な16進数)は、msxml3.dll のものです。 regsvr32 コマンドでレジストリに登録しないと、使えないかもしれません。 msxml3.dll を system32 へコピーして、コマンドラインで、system32 へ移動して、 >|txt| $ wine regsvr32 msxml3.dll ||< で、どうでしょうか。 ネタは、ここです。 http://linux.ikoinoba.net/index.php?mode=page&aim=wine

EdgarPoeさんのコメント
どうもうまく行かないみたいです…orz。どうやら手動でxmlを編集するしかないかな? 確かにmsxml3.dllが原因のようで、正常に動いたWindowsXPからmsxml.dllをを抜くと保存ができない(というか設定を読み込まない)らしいです。まだ1回しか確認していないので、さらなる検証中ですが。 ところで、そこのサイト小生も見てたんですよね。知識がないと情報もねこに小判だということがわかりました(笑)。

a-kuma3さんのコメント
>> どうもうまく行かないみたいです…orz。 << むぅ。 エラーメッセージが変わってるんじゃないかと思うんですが、前と同じでしょうか?

EdgarPoeさんのコメント
エラーメッセージは同じ <blockquote> err:msxml:mxwriter_QueryInterface interface {00000126-0000-0000-c000-000000000046} not implemented err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 err:ole:create_server class {3e784a01-f3ae-4dc0-9354-9526b9370eba} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {3e784a01-f3ae-4dc0-9354-9526b9370eba} could be created for context 0x17 </blockquote> のままでした。 -- しかし、面白いことがわかりかけてきました。 1:wine regsvr32 msxml3.dllは成功する(Successfully registered DLL msxml3.dll) 2:しかしエラーメッセージはそのまま 3:なんとなくmsxml3r.dllがアヤシイと思って wine regsvr32 msxml3.dllをすると失敗(DllRegisterServer not implemented in DLL msxml3r.dll)。(Wineの)レジストリサーバがmsxml3r.dllを実装していない?勝手に解釈すると「Wineのレジストリはmsxl3.dllを受け付けない」ということか? 4:WindowsXP実機からmsxml3.dllを引っこ抜くと、なぜかsystem32内に勝手に出現する(どういうことだ?どこかにバックアップがあるのか?)でも、これはまだ再現をチェックしていない。 5:WindowsXPからmsxml.dllとmsxml3r.dllを抜くと、abc.exeはxml設定ファイル自体を読み込まない。どちらも戻らない 6::2つを戻すとちゃんと動く -- 今のところこんな感じですが、あとはWindowsXP実機からmsxml3.dllとmsxml3r.dllを単体で引っこ抜いてどうなるか試してみようかと思います。 ひょっとして 「msxml3.dllとmsxml3r.dllはセットで使わなきゃダメ」 「両方ともレジストリに登録しなきゃダメ」 「Wineのレジストリはmsxml3r.dllを受け付けない」 「だから不可能。バージョンアップしてmsxml3r.dllのレジストリ登録をサポートしてくれるまで待て」 という結果になるんじゃないかと思います。 -- WindowsXP実機の調子が悪くてなかなか実験がはかどらないです。 明日朝早くから1日じゅう出かけるので、実験ののその後は明後日以降になりそうです。 いろいろご迷惑をお掛けしますm(_ _)m。

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。この結論が「何か間違ってる」と思う場合は、コメントを追加していただいても結構です。

a-kuma3さんのコメント
う?ん、力及ばず m(_ _)m msxml3r.dll って、msxml3.dll のリソースのみ(文字列とか、そんなのだけ)版のはずで、regsvr32 が期待しているプログラムの受け口を持ってないんです。 msxml3r.dll は、Windows で regsvr32 を実行しても、こんなんになります。 f:id:a-kuma3:20130311164808p:image msxml3.dll がきちんと登録できていないってことなのかなあ...
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ