终于有分了,重新发贴提问dll的有关问题,大家都来帮忙看看,请伸出援助之手,小弟我被折磨毁了
终于有分了,重新发贴提问dll的问题,大家都来帮忙看看,请伸出援助之手,我被折磨毁了
1。创建一个win32 dll工程A
2。在工程A里面,我创建了3个类,分别是CLogger,A2,A3。
(注:A2和A3是给CLogger调用的,大家先不用管他们)
class CLogger
{
public:
CLogger();
~CLogger();
static CLogger* GetInstance() {
return ((m_pLogInstance != NULL) ?
m_pLogInstance : (m_pLogInstance = new CLogger()));
}
static DeleteInstance() {
if ( m_pLogInstance != NULL )
{
delete m_pLogInstance;
m_pLogInstance = NULL;
}
}
protected:
static CLogger* m_pLogInstance;
public:
BOOL Open(PLOG_CONFIG pLogConfig);
BOOL Close();
}
3。我创建一个头文件C.h,头文件里面定义宏
#include "Logger.h "
#define LOG_OPEN(pLogconfig) (CLogger::GetInstance()-> Open(pLogconfig))
#define LOG_PUT(pLog) (CLogger::GetInstance()-> Put(pLog))
#define LOG_CLOSE (CLogger::DeleteInstance())
4。编译,生成lib
5。我创建一个mfc对话框工程testappDlg
6。在工程testappDlg里面,include C.h,然后使用LOG_OPEN
现在编译的时候出现问题
リンク中...
testappDlg.obj : error LNK2001: 外部シンボル " "public: int __thiscall CLogger::Open(struct _logconfig *) " (?Open@CLogger@@QAEHPAU_logconfig@@@Z) " は未解決です
testappDlg.obj : error LNK2001: 外部シンボル " "public: __thiscall CLogger::CLogger(void) " (??0CLogger@@QAE@XZ) " は未解決です
testappDlg.obj : error LNK2001: 外部シンボル " "private: static class CLogger * CLogger::m_pLogInstance " (?m_pLogInstance@CLogger@@0PAV1@A) " は未解決です
Debug/testapp.exe : fatal error LNK1120: 外部参照 3 が未解決です。
link.exe の実行エラー
怎么回事?帮忙看看。
------解决方案--------------------
描述不清楚,
应该是cpp中没有实现的问题
------解决方案--------------------
CLogger类这样写
class AFX_EXT_CLASS CLogger
{
....
}
1。创建一个win32 dll工程A
2。在工程A里面,我创建了3个类,分别是CLogger,A2,A3。
(注:A2和A3是给CLogger调用的,大家先不用管他们)
class CLogger
{
public:
CLogger();
~CLogger();
static CLogger* GetInstance() {
return ((m_pLogInstance != NULL) ?
m_pLogInstance : (m_pLogInstance = new CLogger()));
}
static DeleteInstance() {
if ( m_pLogInstance != NULL )
{
delete m_pLogInstance;
m_pLogInstance = NULL;
}
}
protected:
static CLogger* m_pLogInstance;
public:
BOOL Open(PLOG_CONFIG pLogConfig);
BOOL Close();
}
3。我创建一个头文件C.h,头文件里面定义宏
#include "Logger.h "
#define LOG_OPEN(pLogconfig) (CLogger::GetInstance()-> Open(pLogconfig))
#define LOG_PUT(pLog) (CLogger::GetInstance()-> Put(pLog))
#define LOG_CLOSE (CLogger::DeleteInstance())
4。编译,生成lib
5。我创建一个mfc对话框工程testappDlg
6。在工程testappDlg里面,include C.h,然后使用LOG_OPEN
现在编译的时候出现问题
リンク中...
testappDlg.obj : error LNK2001: 外部シンボル " "public: int __thiscall CLogger::Open(struct _logconfig *) " (?Open@CLogger@@QAEHPAU_logconfig@@@Z) " は未解決です
testappDlg.obj : error LNK2001: 外部シンボル " "public: __thiscall CLogger::CLogger(void) " (??0CLogger@@QAE@XZ) " は未解決です
testappDlg.obj : error LNK2001: 外部シンボル " "private: static class CLogger * CLogger::m_pLogInstance " (?m_pLogInstance@CLogger@@0PAV1@A) " は未解決です
Debug/testapp.exe : fatal error LNK1120: 外部参照 3 が未解決です。
link.exe の実行エラー
怎么回事?帮忙看看。
------解决方案--------------------
描述不清楚,
应该是cpp中没有实现的问题
------解决方案--------------------
CLogger类这样写
class AFX_EXT_CLASS CLogger
{
....
}