0

1年ちょっと前からあるプロジェクトに取り組んでいます。プロジェクトを開始して以来、VS2008 で最初に取り組みました。MFC の使用は共有ライブラリに設定されました。プロジェクトを取得しましたが、VS2008 を持っていなかったので、プロジェクトを V100 にアップグレードしました。私がドライバーを顧客にリリースしたとき、彼らは私に戻ってきて、C++ ランタイム 2010 をインストールするまで新しいライブラリは機能しないと言いました。私は彼らにこれが必要であると言いました、そして彼らはそれで大丈夫でした. 私はその背後にある理由を決して理解していませんでしたが、ただそれに従いました。数か月早送りすると、VS2012 が登場し、私はそのバンド ワゴンに飛び乗りました。(私の意見では) C++ コードをより適切に表示します。ある時点で、設定をいじっていて、静的ライブラリで文字セットを(なしから)UnicodeとMFCに変更しました。これにより、DLL のサイズが少し大きくなり、VC100crt をインストールする必要があるという問題を解決できると思いました。そのため、アップグレード時にプラットフォーム ツール セットも V110 にアップグレードしました。それを構築し、リリースする前に自分のシステムでテストしてもらいたいと思っていました。彼はそれが登録されないと言って反撃しました、そして彼のプログラムはそれを認識しませんでした. だから私はV100を使って再コンパイルし、それは彼のために働いた. 彼のプログラムはそれを認識しませんでした。だから私はV100を使って再コンパイルし、それは彼のために働いた. 彼のプログラムはそれを認識しませんでした。だから私はV100を使って再コンパイルし、それは彼のために働いた.

それで、私は何が欠けていますか?dll を登録するために V100crt をインストールする必要があるのはなぜですか。別の同様のライブラリもロードされます (コンパイル オプションが何であるかはわかりません) が、CRT をインストールする必要はないようです... 考えはありますか?

編集

C++ コンパイル オプション

/Yu"StdAfx.h"
/GS
/analyze-
/W3
/Zc:wchar_t
/Zi
/Gm-
/Od
/Fd"Debug\vc100.pdb"
/fp:precise
/D "WIN32"
/D "_WINDOWS"
/D "_DEBUG"
/D "_USRDLL"
/D "_WINDLL"
/D "_UNICODE"
/D "UNICODE"
/errorReport:prompt
/WX-
/Zc:forScope
/Gd
/Oy-
/MTd
/Fa"Debug\"
/EHsc
/nologo
/Fo"Debug\"
/Fp"Debug\MyLibrary.pch" 

うわー、これは自動生成された長いリストです :/ うーん.. これがリンカです。これらをよりよく理解できたらいいのにと思います。

リンカー オプション

/OUT:"C:\Subversion\MyLibrary\Debug\MyLibrary.dll"
/MANIFEST
/NXCOMPAT
/PDB:"C:\Subversion\MyLibrary\Debug\MyLibrary.pdb"
/DYNAMICBASE
/ALLOWISOLATION
/DEF:".\MyLibrary.def"
/DEBUG
/DLL
/MACHINE:X86
/INCREMENTAL
/PGD:"C:\Subversion\MyLibrary\Debug\MyLibrary.pgd"
/SUBSYSTEM:WINDOWS
/MANIFESTUAC:"level='asInvoker'
uiAccess='false'"
/ManifestFile:"Debug\MyLibrary.dll.intermediate.manifest"
/ERRORREPORT:PROMPT
/NOLOGO
/TLBID:1 

構成オプション 一般:

Target Extension: .dll
Platform Toolset: Visual Studio 2012 (v110)

プロジェクトのデフォルト:

Configuration Type: Dynamic Library (.dll)
Use of MFC: Use MFC in a Static Library
Use of ATL: Not using ATL
Character Set: Use Unicode Character Set
Common Language Runtime Support: No Common Language Runtime Support
Whole Program Optimization: No Whole Program Optimization
Windows Store App Support: No

マニフェストを埋め込まない場所も見つけました。だから私はそれをいいえに変更しました。

4

0 に答える 0