0

Visual Studio 2010でdllを作成していて、やなどの単純なC関数を使用してfprintfおりfread、デフォルトでにリンクしmsvcr100.dllています。

msvcr90.dllこのdllは、別のCRTバージョン(たとえば、 )を使用している可能性のあるアプリに読み込まれますmsvcrt.dll

msvcr100.dlldllが読み込まれる前にアプリがCRTを読み込むことがわかっているので、アプリによって読み込まれたCRTのC関数への依存関係を削除して使用できますか?

4

1 に答える 1

0

最終的に、ターゲットアプリで使用される最小公分母のCRTバージョンに対してDLLを構築することにしましたmsvcr90.dll

これは、Visual C ++ 2008 Express(無料)で利用できるMSVCツールチェーンを使用して行いました。

リンクするCRTバージョンを指定できるmingw/gccツールチェーンを試しましたが(mingw-rtおよびgcc -specs = msvcr **を参照)、msvcr90.dll新しいスタイルのSxSアセンブリであるため、取得できませんでした。生成された実行可能ファイルは正しく実行されます。

msvcr**.dllリンクを完全にスキップすることを検討する価値があるかもしれません。この投稿とを参照してくださいVC/include/delayhlp.cpp

于 2011-12-30T14:44:29.437 に答える