VS2005で作成したexeについて – プログラミング – Home

VS2005で作成したexeについて
 
通知
すべてクリア

VS2005で作成したexeについて


むっさん
 むっさん
(@むっさん)
ゲスト
結合: 19年前
投稿: 1
Topic starter  

VS2005 StandardEdition
WindowsXP
実行環境:Windows98

むっさんと申します。
VisualStudio2005について質問させてください。

いままで VC++6.0で作成していたプログラムを
VS2005のVC++に開発環境を移行しました。

ところが、いままで Win98で動作していたプログラムが
「必要な DLL ファイル MSVCR80.DLL が見つかりませんでした。」
という警告が出て、プログラムが開始できなくなりました。

とりあえず DLL を探してコピーしたら動くようになりましたが
なぜ exe だけで動かなくなってしまったんでしょうか。
C++/CLI とかいうのが関係しているんでしょうか?

どなたかご教授下さい。
よろしくお願いいたします。


引用解決済
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> C++/CLI とかいうのが関係しているんでしょうか?

していません。

VC++ 6.0 の、ランタイムライブラリの設定はどうなっていましたか?
そこが「マルチスレッド(DLL)」とかになっていたなら、Win98 でも、MSVCRT42.DLL
とかいう DLL が必要だったはずです。Win98 環境にはそれが入っていたのでしょう。
VC++ 2005 でリビルドしたことによって、その DLL の新しいバージョンである
MSVCR80.DLL が必要になったというわけです。

VC++ 6.0 で、ランタイムライブラリに(DLL)とつかないものを使っていた場合、VC++
6.0 版の exe は、動作に特に DLL を必要としないものでした。
が、VC++ 2005 では、ランタイムライブラリはデフォルトで外部 DLL 版を使うようにな
っています。
VC++ 2005 でも exe 単体で動作させたい場合は、プロジェクトの設定を変更することで
可能になります。
プロジェクトのプロパティの「構成プロパティ」→「C/C++」→「コード生成」にある
「ランタイムライブラリ」を、名前に「DLL」がつかないものにしてください。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

シャノンさんが書かれている事に補足しますが、

スタティックリンクライブラリとダイナミックリンクライブラリの違いを
調べて自分が作っているプログラムがどちらを使っているのかを認識して
プログラミングを行うようにした方がいいです。
これをきちんと踏まえていないと共通部分をライブラリ化するときに
どちらを選択すべきかとか判断が付かないでしょう。
また、アプリケーションの構成ファイルを理解しておかないと
インストールパッケージも作れませんよね。
この辺は知識としてきちんと持っておいたほうが良いと思いますよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました