XPで作ったプログラムを他のOSで動かすには?

解決


しろ  2006-02-17 07:43:27  No: 60736

現在、VS2005、XP Homeを使って、Platform SDKでWindowsアプリを書いております。
ある程度出来上がってきたので動作確認を行おうと思い、自宅のMeで実行して見たところ、何も起こりません。タスクマネージャを調べてみたところ、起動すらしていないようです。
CRTやバージョンマクロ等も確認したのですが、原因がわかりません。

よろしくお願いします。


RAPT  2006-02-17 08:17:23  No: 60737

おそらく、Win9X系で使用できないAPIを使用しているからでは?
あとはUnicodeビルドしているとか。

まずはもっともシンプルな hello world ダイアログなどで動作するか
確認し、順を追って機能拡張したものでテストするとわかりやすいです。


DD.  2006-02-17 08:25:34  No: 60738

コンパイラオプションで /MD /MDd 等はついていないでしょうか?
こいつがついてると MSVCP80.dll を動的に必要とするようなので、
MSVCP80.dll がないと不正なプログラムと見なされて起動しないです。

VS2005 のプロジェクト→xxxのプロパティ→C/C++→コード生成のランタイムライブラリで /MT や /MTdに変更してやるとうまく動きます。


tetrapod  2006-02-17 18:26:20  No: 60739

/MTd で作ったプログラムの配布はダメ。

とりあえず dumpbin などで要求 DLL を確認。VS2005固有のDLLを使っていたら
Me 環境に配布することで動く *かもしれません* (Microsoft が保証してないかも)


DD.  2006-02-17 21:45:00  No: 60740

>/MTd で作ったプログラムの配布はダメ。
/MT で作成したものならばいんでしょうか?


しろ  2006-02-18 06:04:33  No: 60741

現状報告です。
あちこちにメッセージボックスを仕掛けて見たところ、ウィンドウクラスを登録することが出来ないようです。これはUNICODEでビルドされているのと関係あるのでしょうか?


RAPT  2006-02-18 12:13:01  No: 60742

/MTd ・・・ 基本的にデバッグ版は配布するものではありません。
Unicodeは9X系では対応していなかったはずなので、そうなのかも。
前に書いたように、シンプルコードでのテストをお奨めします。


ライセンス問題  2006-02-18 23:45:35  No: 60743

デバッグ版の第三者配布はライセンス違反です。
アプリのデバッグ時に二端末使っても、担当が一技術者であれば、
それは違反ではありません。


しろ  2006-02-19 00:06:52  No: 60744

プロジェクトの設定を「マルチバイト文字セットを使用する」に変えてビルドすると、うまく動作しました。UNICODEの問題だったようです。
以前にMe上でUNICODEのプログラムを書いたときにはうまく動いたと思っていたのですが・・・。

とにかく解決できました。ありがとうございました。


DD.  2006-02-19 01:24:25  No: 60745

>/MTd ・・・ 基本的にデバッグ版は配布するものではありません。
そうなんですけど、デバッグ版だからといって配布先、もしくは Microsoft にとって具合悪いことでもあるのかな?と、思いまして。

>デバッグ版の第三者配布はライセンス違反です。
>アプリのデバッグ時に二端末使っても、担当が一技術者であれば、
>それは違反ではありません。
担当者が一技術者ということは、以前に別の担当が行っていたプログラムのデバッグ作業を引き継いだりするのもだめなのかなぁ。と、ふと思ってみる。


Ban  2006-02-19 07:45:21  No: 60746

実際の背景はもちろん知りませんので妄想ですが、私の場合、
主に技術的な問題ではなく、ライセンスなどの問題と認識してます。

> デバッグ版だからといって配布先、もしくは Microsoft にとって
> 具合悪いことでもあるのかな?

デバッグ版って、デバッグ情報が載ってる分、当然解析しやすいですよね。
NDA とか EULA に同意してない人にそれが渡ってしまうと、Microsoft から
見たら自社の製品技術を情報漏洩されたと言うことになるのかなと。

そんなことで訴訟とかに巻き込まれたら、配布先も迷惑では?
証拠物件として PC の提出を要請されたり...(まぁ現実性は低いでしょうが。

> 担当者が一技術者ということは、以前に別の担当が行っていた
> プログラムのデバッグ作業を引き継いだりするのもだめなのかなぁ。

ボリュームライセンス等で DD. さんの分のライセンスもあるなら、
そもそも問題ないでしょうし、
担当が部署異動/退職などしてライセンスが浮いているのであれば、
後任者で登録変更すればよろしいかと。
詳細は使用許諾を確認していただくとして、ざっくりで言えば、最近の
MS 開発者ライセンスは、マシン単位ではなく、開発者単位ということです。


DD.  2006-02-20 02:08:19  No: 60747

>デバッグ版って、デバッグ情報が載ってる分、当然解析しやすいですよね。
>NDA とか EULA に同意してない人にそれが渡ってしまうと、Microsoft から
>見たら自社の製品技術を情報漏洩されたと言うことになるのかなと。
なるほど。そりゃ、デバッグ版のが解析しやすいですよね。
わかる人はそこから様々な情報が出せるんですよね。。

>MS 開発者ライセンスは、マシン単位ではなく、開発者単位ということです。
ライセンスとか会社でどういう風にやってるのかよくわからないんですが、色々とややこしそうですね^^;

しかし、開発者単位なんですねぇ。
Microsoftも大変なのですね。

Banさん色々教えて頂きありがとうございます<(_ _)>


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加