首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pantheios在C++动态链接库中登录

Pantheios在C++动态链接库中登录
EN

Stack Overflow用户
提问于 2011-01-26 06:27:50
回答 1查看 1.3K关注 0票数 3

以下是场景:

我有一个有main功能的testApp.cpp。并且这个testApp.cpp使用了misc.dllcommon.dll库。

我想创建一个日志文件,而不是控制台。

因此,在testApp.cpp main()函数中,我使用了以下内容:

代码语言:javascript
复制
pantheios::pantheios_init();
pantheios_be_file_setFilePath("mylogfile.log");
pantheios::log_NOTICE(" START TESTAPP");

// Call function from misc.dll and common.dll
pantheios::log_NOTICE(" END TESTAPP ");
pantheios_be_file_setFilePath(NULL);

这将创建内容为“START TESTAPP”的mylogfile.log文件。

现在的问题是:

我还想将misc.dll和common.dll的日志记录添加到mylogfile.log中。换句话说,如果我将日志添加到misc.dll中testMiscfunction()中,我希望将来自testMiscfunction()的日志写入mylogfile.log。当然,common.dll也是如此。

下面是misc.dll的DLL条目示例

代码语言:javascript
复制
#include "pantheios/pantheios.hpp" 
#include "pantheios/backends/bec.file.h" 
#include "pantheios/implicit_link/core.h"
#include "pantheios/implicit_link/be.file.h"

extern "C" const char PANTHEIOS_FE_PROCESS_IDENTITY[] = "MISC_DLL"; 

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
            )
{
    switch (ul_reason_for_call)
    {
        case DLL_PROCESS_ATTACH:
            pantheios::pantheios_init();
            break;

        case DLL_THREAD_ATTACH:
            break;


        case DLL_THREAD_DETACH:
            break;


        case DLL_PROCESS_DETACH:
            pantheios::pantheios_uninit();
            break;
    }
    return TRUE;

}

所以现在在

代码语言:javascript
复制
testMiscFunction() { pantheios::log_NOTICE("I am testMiscFunction"); } 

所以“我是testMiscFunction”不是写给mylogfile.txt的问题是:为什么?需要做的事情。

谢谢……

EN

回答 1

Stack Overflow用户

发布于 2011-01-27 04:19:26

DLL应该动态链接到Pantheios,因此它们将使用相同的数据。在这种情况下,您不需要从DLL入口点调用Pantheios init/uninit函数(这可能是一个坏主意)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4799579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档