0

如何在 DLL API 中写入日志?

在我的程序中,我使用两个线程和一个主线程。我正在初始化:

LOGOG_INITIALIZE();

logog::LogFile errFile("log.txt");

进入我的主线程并在主线程中使用INFO其他ERR两个线程。我的主线程正在使用 C++ DLL API。我完美地从主线程和另外两个正在运行的线程中获取日志,但我的问题是我无法从 DLL API 的流中获取日志。如何在 DLL API 中使用 logog 获取日志。如果我INFO在 DLL API 中使用,我想在这里清除。它正在崩溃,但如果我LOGOG_INITIALIZE();在 DLL API 内执行,INFO则执行但不记录任何内容。

4

1 回答 1

0

如果我理解正确,您的情况如下:例如,您有一个使用共享库 (DLL) 的应用程序 (EXE)。从 EXE 和 DLL,您希望能够登录。

上次我检查了logog库时,我遇到了上述情况的问题。也许现在它被纠正了?

在 windows 下(仅限!),logog库不导出任何符号 - 它根本不准备用作 DLL。这会迫使您构建和使用logog作为静态库 - 这会导致logog库中的静态变量出现问题,这些静态变量应该只存在一次,但实际上存在的次数与静态库链接到模块(EXE 或 DLL)的次数一样多)。

解决方案是构建和使用logog库作为 DLL。

也许这涵盖了您的问题,您可能会努力导出logog库的符号。或者你可以联系图书馆作者。

于 2012-09-05T06:53:58.713 回答