海外PC対応のプログラミングで起動できない問題

このQ&Aのポイント
  • 海外PC対応のプログラミングでアプリケーションが起動できない問題が発生しました。ロケールの設定や環境依存の要素を考慮しても同じ状況です。何が問題なのでしょうか?
  • 質問者が渡した簡単なプログラムは日本語環境では正常に動作していますが、カナダの方に渡した際にアプリケーションが起動できないという問題が発生しました。ロケールの設定や環境依存の要素を考慮しても同じ結果です。どのように対処すべきでしょうか?
  • 海外PC対応のプログラミングでアプリケーションの起動ができない問題が生じています。基本的なプログラムであり、日本語環境では問題なく動作していますが、カナダの方に渡した際に問題が発生しました。起動できない原因は何なのでしょうか?
回答を見る
  • ベストアンサー

海外PC対応のプログラミング

DOSベースで作った簡単なプログラムをカナダの方に渡したら アプリケーションの構成が正しくないので起動できないという旨のメッセージが表示されて起動できなかったと言われました。 試しに渡したのは本当に基本的なプログラムで、日本語環境だと問題なく起動できますし、 環境に依存するDirectXなどは一切使っていません。 もしかしたらロケールの設定が悪かったのかなと思い、 setlocale( LC_ALL, "Japanese" ); したものを渡しても同じでした。 OSはWinXP日本語版、開発環境はVS2008EEの英語版です。何が問題なのだと思われますか? こういう場合はやはり英語版のWindowsを購入して自分で確認した方が早いのでしょうか・・。

noname#88356
noname#88356

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> ということはMD系でならReleaseビルドの > Multi-threaded DLL (/MD)にしてmsvcr90.dllを.exeと同じ場所に置いたものを渡すか、 できればPATHが通った場所にしてください。 > あるいは同じReleaseビルドのMT系のMulti-threaded (/MT)でmsvcr90.dllが.exeに組み込まれたものを渡せば良いと言う意味でしょうか? 正確には、msvcr90.dllそのものが組み込まれるのではなく、libcmt.libに含まれる必要なオブジェクトファイルがリンクされることになります。 > 今確かめてみると確かに私が渡したのはMulti-threaded Debug DLL (/MDd)でコンパイルしたものでした。 この場合、msvcr90d.dllを使えば動かすことは可能です。 ただし、msvcr90d.dllの再配布は禁止されていますので、実質的には無理です。

noname#88356
質問者

お礼

なるほど。 実質他の方に作ったものを渡すにはMT系しかなさそうですね。 何度もご親切にありがとうございました。

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

> デバッグビルドしたものを渡してしまいました。(ほぼデフォルトの設定です) それは論外です。マニュアルを読み直すことをお勧めします。 > 後スタティクリンクとかランタイムライブラリのインストールとはどういうことでしょう? ランタイムライブラリをダイナミックリンクにする場合(/MDオプションの場合)は、msvcr90.dllをいっしょにインストールする必要があります。そうでないなら、スタティックリンクにする(/MTオプションを付ける)必要があります。

noname#88356
質問者

お礼

ということはMD系でならReleaseビルドの Multi-threaded DLL (/MD)にしてmsvcr90.dllを.exeと同じ場所に置いたものを渡すか、 あるいは同じReleaseビルドのMT系のMulti-threaded (/MT)でmsvcr90.dllが.exeに組み込まれたものを渡せば良いと言う意味でしょうか? MTが静的に必要なdllが勝手にexeに組み込まれているものでMDが動的に同梱する必要があるモード、という認識でよろしいでしょうか? 今確かめてみると確かに私が渡したのはMulti-threaded Debug DLL (/MDd)でコンパイルしたものでした。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

ランタイムライブラリをインストールするようにしましたか? あるいはスタティックリンクにしましたか? まさかデバッグ版を渡していませんよね。

noname#88356
質問者

お礼

デバッグビルドしたものを渡してしまいました。(ほぼデフォルトの設定です) これは渡す際はリリースビルドにすべきだったということでしょうか? 後スタティクリンクとかランタイムライブラリのインストールとはどういうことでしょう? 日本語版も入れているので日本語版を想定して話を進めて頂いても構いませんのでよろしくお願いします。

関連するQ&A

  • システムロケールの設定について教えて下さい。

    システムロケールの設定について教えて下さい。 英語版のWindows Vistaを使っています。 今までずっとシステムロケールは Japan (Japanese)で使用していたのですが、 とある米国製のソフトウエアをインストールしたところ、 そのソフトウエア上の文字は空白になってしまい、全く読めませんでした。 そこでシステムロケールを English (United States)に変更すると、 そのソフトウエア上でも問題なく英語が表示されるようになりました。 しかしこのロケールのままだと、 使用している日本語版のFirefoxのツールバーが文字化けしてしまい都合が悪いです。 画面上で、英語も日本語も正確に表示できるような設定はありますでしょうか。 よろしくお願いします。

  • ロケールに対応するストリングテーブルの参照について

    こんにちは。初歩的な質問かもしれませんが、お分かりの方は是非ご教授願います。以前にもロケールとストリングテーブルについてのQAがNo.445463でされていますが、こちらで出された回答と現象が違うかもしれませんので、書いてみました。 <現象> 開発環境上(VisualBasic6.0Enterprise)でストリングテーブルを日本語と英語(U.S.)の2つ設定し、同環境上でロケールを日本語⇔英語切替を行いながらデバッグ実行をしました。その際はロケールに対応したストリングが呼び出され、該当した言語で表現されました。 しかし、実際作成したexeにて同様の実行を行ったところ、必ず日本語のストリングが呼び出されてしまい。英語ロケール時に英語テーブルが呼ばれません。 <OS環境> コンパイル・実行ともにWindows2000professional(日本語版・ロケールも日本語)です。 No.445463の方の例を忠実に手直ししようと思いましたが、多言語テーブルの場合とちょっと違う気がします。この現象を解決するにはどうすればよろしいのでしょうか?あと、自分の解釈ではロケールとは"地域のオプション"の"全般"タブにあるコンボのことだと思うのですが、他にも設定が必要なんでしょうか? ご回答、よろしくお願いします。

  • 自分のExeだけ、あたかもシステムロケールを変更したかのようにしたい

    お世話になります。 ShiftJIS前提のUnicode対応でないプログラムがあり これを非日本語環境で動かすには、Windowsのシステムロケールを 日本に変更すれば、あたかも日本語環境かのように動くのですが Microsoftのホームページで、AppLocaleという システムロケールを変更せずに、特定のアプリケーションだけ あたかもシステムロケールを変更したかのような動作をさせる ツールを見つけました。 とすれば、AppLocaleと同じことを自分のプログラムで行えば システムロケールを変えなくても、自分のプログラムだけは 非日本語環境でも日本語環境と同じ動作をしてくれるのではと 思い、自プロセスにとってものシステムロケールに該当するものを 変更する方法をさがしています。 よろしくお願いします。

  • 日英対応のメニューの作り方

    CでWindowsのプログラム作っています。 メニューの文字が現在、日本語で表示するようにプログラムしていますが、英語表示版が必要になりました。リソースファイルを書き換えて再コンパイルすれば英語版ができるのはわかりますが、もっとスマートな解決策ありませんか? たとえば、外部ファイルとして日本語、英語メニュー文字列を用意しておいて、起動時にどちらかを読み込んで、そこの文字列を表示するとか、日本語版、英語版のメニューをあらかじめプログラムに埋め込んでおいて、実行時のオプションメニューなどで表示を切り替えるなどです。 具体的なテクニックとそのためのコーディングお教えください。 なお、リソース・エディタは、「BCCForm and BCCSkelton」を使っています。

  • Monodevelopの日本語化 for Windows

    オープンのIDE MonoDevelop という開発環境があるのですが、めでたくWindows版もあるようです。 Linuxでは最初から日本語化されていましたが、Windows版はロケールが日本語になっていない模様で、メニューなどがすべて英語の状態です。 本家で日本語対応ができているのでWindowsでも日本語化するのは問題ないと思うのですが、ネットを探せど情報が少なくわかりませんでした。 どなたか、日本語への切り替え方をご存知の方はいますでしょうか?

  • unicode対応でないプログラムの文字化け

    こんにちは 当方windows8.1 64bitを使用しています 海外のソフトを使用するためにシステムロケールを英語(米国)にしている(にしないと起動しないので)のですが プリンタのpcソフトなど、一部の日本語が使用されているソフトを使用する際に文字化けします こちらはシステムロケールを日本語にすれば改善するのですが、上記のソフトを使用する頻度が多いので、システムロケールを英語(米国)にしたままこの文字化けを改善する方法はないでしょうか? 回答よろしくお願いします。

  • 入力ロケールの設定方法

    以前 Windows 2000 の英語版に日本語IMEをのっけて使用していました。その時はAlt+Shiftか何かで英語⇔日本語と入力ロケールの切り替えをしていました。 今は98SEの日本語版を使っています。同じようにロケールの切り替えができるようにしたいのですが、当時どうやってそう設定したか覚えてません。また98SEの場合は具合が違ってくるのかな?とかも思います。 どなたか教えて頂けないでしょうか。

  • MySQLの多言語対応

    多言語に対応したシステム(日本語と英語に対応)で疑問に思うことがあります。 マスタテーブルにname_jaとname_en という2つのカラムがありそれぞれ日本語と英語の レコードが格納されている場合、ロケールを判断してどちらのカラムにアクセスすべきか 判定してくれるような仕組みはDB(MySQL)にあるのでしょうか? 例えばプログラムでは select name from NAME_MASTER; というSQLを発行して ロケールに応じname_ja又はname_enのどちらかから取得されるというような仕組みが あるのかということです。

    • ベストアンサー
    • MySQL
  • Windows2000(日本語環境)で英語キーボードを使う

    Windows2000(日本語環境)で英語キーボードを使おうとしています。過去ログを参照して、ホットキーで日本語入力(aのキーを押すと「あ」),英語入力(aのキーを押すと「a」),の切替は出来ました。しかし、「(」の入力は、うまく行きません。 日本語入力では、1つずれていまって「)」が出てきます。 多分、コントロールパネルのキーボード、ロケール、とか、日本語入力の意味を間違って捉えているのかと思います。 ロケールの設定にて、2つの窓があります。上の窓「英語(US)」でよいですか? 下の窓は、JP Japanese Input System(MS-IME2000)でよいですか? ハードウェアのタグにて、Standard 101/102-Keyで良いですか? よろしくお願い致します。

  • Windows2000 日本語版で英語版導入

    Windows2000 Serverの英語版を導入する必要があるのですが、手元に日本語版しかありません。Windows2000 FAQ(http://homepage2.nifty.com/winfaq/w2k/)にWindows 2000/XP 英語版で日本語を扱うやり方が載っていますがこれって結局Windows2000/XPの英語版を日本語版へ変えているということなのでしょうか。もしそうなら逆に日本語版を使って英語版を導入できるということなのでしょうか。それともあくまでも英語版を買う必要があるのでしょうか。 以下要約 Windows 2000/XP 英語版で日本語を扱うには? Windows 2000/XP は多国語サポート機能を持っているため、英語版 Windows でも日本語版アプリケーションを問題なく使うことができます。 日本語を正しく扱うためには次の設定を確認してください。 Windows 2000 の場合 1. Administrators グループのユーザーで Windows 2000 にログオン 2. [Start]-[Settings]-[Control Panel]-「Regional Settings」 3. [General] タブの Your locale が Japanese になっていることを確認 4. Language settings for the system で Japanese にチェックが入っており、さらに Default に設定されていることを確認 5. [Input locales] タブの Input language に Japanese Japanese Input System (IME2000) があることを確認、なければ Japanese を追加 6. 設定を変更すると、Windows 2000 CD-ROM を要求されるので、指示に従って CD-ROM をセットし、その後の再起動などの指示に従う

専門家に質問してみよう