作成したDLLをインポートして実行するとdllint.cppでおこられる


abc  2013-03-20 17:13:47  No: 73644  IP: 192.*.*.*

VC++2010においてレギュラーDLL(Aとする)を作成しており、そのDLLからは他のDLLがインポートされています。
Aのビルドは行われるのですが、AをテストMFCプロジェクトにインポートして使用するとdllint.cppの703行目でDebug Assertionが出て怒られます。Aに依存しているDLLは全てAと同じディレクトリに配置しています。
これはどのように解決したらよいでしょうか。また、問題としてなにが考えられるでしょうか。

編集 削除
abc  2013-03-20 18:36:01  No: 73645  IP: 192.*.*.*

上記dllint.cppをdllinit.cppと修正して読み替えてください。

編集 削除
オショウ  2013-03-21 06:47:03  No: 73646  IP: 192.*.*.*

そのAを呼び出す元のEXEも同じディレクトリにあるのでしょうか?
EXEがDLLを検索する場合、環境変数のPATHを使って探しますので、
PATHにAのあるディレクトリ設定が無いか、EXEとAが同じディレクトリ
に無いか・・・です。

以上。

編集 削除
abc  2013-03-21 13:26:32  No: 73647  IP: 192.*.*.*

DLLはEXEと同じパス、若しくはDebugモード時に優先して検索されるプロジェクトファイルのパスにあり、レギュラーDLLではなくWin32プロジェクトでアプリケーションタイプをDLL(MFC使用)にして同じようにサードパーティライブラリを動的リンクさせて、他のプログラムからAをインポートするとエラーが出ません。
レギュラーDLLはインポートの手順が特殊なのでしょうか。

編集 削除
abc  2013-03-21 14:29:10  No: 73648  IP: 192.*.*.*

どうやらDLL側でインポートしているboostライブラリがホストプログラム側でインポートしているboostライブラリとぶつかっているようです。DLL側でboostを使用せずにビルドし、ホストプログラムでインポートしたらdllinit.cppでDebug Assertionが出なくなりました。
DLL側でホストプログラムと同じバージョンのboostを使用したい場合はDLL版のboostを使うしか無いのでしょうか。

編集 削除