いつも参考にさせていただいております。
VS2005 C++ MFC WinXp Sp2 でリリースビルドしたアプリケーションを
Windows Vista で起動させたところ
「このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーショ
ンを開始できませんでした。詳細については、アプリケーションのイベント ログを参照
してください。」のエラーが出て実行できませんでした。
ランタイムが無いのかなと思い、入れたりしてみましたが、変化なしです。
どうか、ご教授お願いいたします。
ご指示のとおり、イベントビューアはどうなってますかね?
アクセス権が無い などのメッセージはありませんか
まったくどんなことをしているプログラムなのか
記載されていないので、
>どうか、ご教授お願いいたします。
っていわれても、誰も答えられませんよ
XPで動いたからVistaでそのまま動くとは限らないですよ
UACとか考慮してますか
今年の3月くらいにCマガ から
「Windows Vista プログラミング 徹底理解」って言う雑誌が創刊
されています
宮城県仙台のヨドバシでまだ入手可能なようですから
他県でも、まだまだ入手できると思います
参考にしてみてはいかがでしょうか
イベントビューアには
「Microsoft.VC80.DebugCRT・・・・が見つかりません。」
のメッセージです。
作成中のアプリケーションはDirectXを使用したものですが・・・、
スケルトンのアプリでも、同様のエラーが出たので、
VS2005特有のエラーかなと思いました。
Microsoftからでてる、ランタイムには、デバックのランタイムはついてなく、
再配布も禁止されているみたいです。
VS2005コンパイルの仕方に問題がないか、調べていますが、
まだ解決には至っていません。
よろしくお願いいたします。
リリースビルドしているのにデバッグライブラリをリンクしている
ということになるのかな?そりゃ当該プロジェクトの設定が悪いか、もしくは
自作のリリース EXE が読み込んでいるところの
「自作/他人作 DLL が Microsoft デバッグランタイムを呼んでいる」
のではないかな
(自分のプロジェクト設定は正しくても間接的にデバッグライブラリを呼んでいる)
プロジェクトの設定だけでなく、プロジェクトが使っている DLL の構成を検査
しておく必要がありそうだ
まず、デバッグ版のアプリは配布できないので
デバッグ版のアプリを他の所に持っていって動かそうとしているなら
あきらめないと駄目でしょうね。他のPCだけどそれも開発用PCと言うなら
話は別でしょうけれど。
基本的に他のPCに持っていくアプリはリリース版で無いと駄目です。
あと、サイド・バイ・サイドの場合、該当のDLLを単純にPCにコピーしても動きません。
サイド・バイ・サイドはDLLの登録が必要になる為、それようのインストーラーで
インストールする必要があります。
自分でmanifestを書いてどうにかすると実行ファイルのある場所のDLLを見てくれる
用にはなったと思いますけれど、詳細は御自分で調べて見てください。
サイドバイサイドを使わず、マニフェストを使ってDLLを指定位置から
ロードする手法は以下のページが参考になるかと思います。
http://msdn2.microsoft.com/ja-jp/library/ms235291(VS.80).aspx
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-32360.htm