SSブログ

32bit VBなアプリを64bit環境で動かなかったけど動かしたい(動かした) [プログラミング]

前回に、WindowsXPのリプレイスがやすやすとできそうにない、という話をした。そのおまけに、64bitサーバで32bitアプリが動かないという。普通はWOW64で動くはずなのにね~ということ。

二つのパターンがあって、ほぼ同じ挙動を示していたんだけど、どっちも動かない理由が違っていた。

VBScriptの場合は、そのままダブルクリックで実行しようとすると、CreateObjectで転んでいた。
VBで作ったEXEの場合も、64bitサーバOSで動かそうとすると、同様にCreateObjectできていなかった。

結局、前者の方は、スクリプトをダブルクリックで実行すると、64bitのインタプリタが動いてしまうらしく、そこで問題が出ていたらしい。WOW64なcscriptというコマンドラインアプリに、スクリプトファイルを引数で渡して実行すると、晴れて32bitモードで実行されてきちんと動く。そうじゃないと32bitのDLLが読めないということでした。そんなわけで、CreateObjectできないものになっていたらしい。

後者のVBの32bitアプリのほうは、ただ単にOSのパスが通ってないところに、DLLを置いていたってだけらしい。彼はregsvr32とか使っていたけど、多分パスが通ってればDLLを手動でコピーしたりしても動くはず。まぁサーバOSで64bitっていうことで、いろいろ勝手が違うかもしれないし、面倒なので細かくは調べない。ググればすぐ出てくるはずさぁ。


同じようなエラーだから、同じように攻めていくとはまりそうだが、今回はそんなに難解な問題じゃなくて良かった。きちんとできなかったわけを理解しないと、同様なところではまるから、原因つぶしはしといたほうがいいよとはたぶん言っておいたので、無事に事が解決してよかった。


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。