0

我经常使用log4cplus,但我遇到了一个新问题。

我有一个使用 dll (LoadLibrary) 的 Windows 应用程序

它们建立在不同的编译器上,但使用同样名称的 dll(包括 log4cplus.dll)也建立在不同的编译器上。该应用程序及其使用的所有 dll 都构建在一个环境中(vs2008)。dll 和它使用的所有 dll 都建立在另一个环境(vs2013)上。

LoadLibrary 失败,直到我更改应用程序以将 LOAD_WITH_ALTERED_SEARCH_PATH 标志传递给 LoadLibraryEx,这似乎允许 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。我将 dll 更改为静态链接 log4cplusS.lib,但仍然遇到相同的错误。

4

1 回答 1

0

首先,对所有内容使用相同的编译器。使用不同的编译器版本时,基本上不可能使事情正常进行。使用相同的编译器编译所有内容后,尝试解决其他问题(如果仍然存在)。

于 2016-04-02T17:59:28.040 回答