2011-01-25 49 views
3

這裏記錄是場景:Pantheios在C++ DLL

我有testApp.cppmain功能。而這testApp.cpp使用misc.dllcommon.dll庫。

我想創建一個日誌文件,而不是控制檯。

所以在testApp.cppmain()功能,我使用以下命令:

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); 

這將創建mylogfile.log文件的內容 'START TESTAPP'

現在的問題:

我也想將misc.dll和common.dll的日誌記錄添加到mylogfile.log。 換句話說,如果我在misc.dll中添加日誌testMiscfunction(),我希望將來自 testMiscfunction()的日誌寫入mylogfile.log。 當然,與common.dll一樣的東西。

現在,這裏是misc.dll

#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; 

} 

DLL入口的樣品所以現在

testMiscFunction() { pantheios::log_NOTICE("I am testMiscFunction"); } 

所以 「我testMiscFunction」 沒有被寫入mylogfile.txt問題是:爲什麼?需要做什麼。

感謝....

+1

我沒有看到從任何DLL登錄任何問題,你可能確切的問題,或告訴我們你試過什麼,出了什麼問題? – 2011-01-26 07:43:36

+0

以下是misc.dll的示例代碼: – user589821 2011-01-26 19:04:51

回答

1

的DLL文件應該鏈接到動態Pantheios,所以他們會使用相同的數據。在這種情況下,您不需要從DLL入口點調用Pantheios init/uninit函數(無論如何,這可能是個壞主意)。