0

log4cplus を定期的に使用していますが、新たな問題に遭遇しました。

dll (LoadLibrary) を使用する Windows アプリケーションがあります。

これらは異なるコンパイラで構築されていますが、異なるコンパイラで構築された同じ名前の dll (log4cplus.dll を含む) を使用します。アプリとそれが使用するすべての dll は、1 つの環境 (vs2008) に組み込まれています。dll とそれが使用するすべての dll は、別の環境 (vs2013) で構築されています。

LOAD_WITH_ALTERED_SEARCH_PATH フラグを LoadLibraryEx に渡すようにアプリケーションを変更するまで、LoadLibrary は失敗しました。これにより、dll が独自の依存関係を正常にロードできるようになりますが、これらのランタイム エラーが発生するようになりました。

log4cplus:ERROR PropertyConfigurator::configureAppenders()- Cannot find AppenderFactory: log4cplus::RollingFileAppender
log4cplus:ERROR PropertyConfigurator::configureAppenders()- Cannot find AppenderFactory: log4cplus::ConsoleAppender
log4cplus:ERROR PropertyConfigurator::configureLogger()- Invalid appender: ROLLING

ロギングは、いずれかの環境で構築されたすべてのアプリケーションで機能します。ロギングは、同じ環境で構築されたこのアプリと dll に対しても機能します。log4cplusS.lib を静的にリンクするように dll を変更しましたが、それでも同じエラーが発生します。

4

1 に答える 1

0

まず、すべてに同じコンパイラを使用します。異なるコンパイラ バージョンを使用する場合、基本的に機能させることは不可能です。すべてを同じコンパイラでコンパイルしたら、他の問題がまだ残っている場合は解決してみてください。

于 2016-04-02T17:59:28.040 に答える