WTL是模板库,所以我必须在模板库头文件中实现它。如何实现WTL头文件?
我想实现我的逻辑.cpp
文件,否则,我将不得不编码一个巨大的头文件。
例如,在为MainFrm.h
// ...
// MainFrm.h
class CMainFrame :
public CFrameWindowImpl<CMainFrame>,
public CUpdateUI<CMainFrame>,
public CMessageFilter, public CIdleHandler
{
//...
void function1()
{
//...
}
void function2()
{
//...
}
}
我想有function1()
和function2()
在myfunction.cpp
,怎么办呢?
请指导。
编辑:
解决!感谢扬S.我有包括myfunction.cpp到WTL项目,并添加一些行:
为MainFrm.h:
// ...
// MainFrm.h
#if 1
#include <atlframe.h>
#include <atlsplit.h>
#include <atlctrls.h>
#include <atlctrlw.h>
#include <atlctrlx.h>
#include "sampleView.h"
#include "resource.h"
#endif
// MainFrm.h
class CMainFrame :
public CFrameWindowImpl<CMainFrame>,
public CUpdateUI<CMainFrame>,
public CMessageFilter, public CIdleHandler
{
//...
void functionx();
//...
};
myfunction.cpp:
// myfunction.cpp
#include "stdafx.h"
#include "MainFrm.h"
void CMainFrame::functionx()
{
//...
}
C++定义和声明之间的区别http://stackoverflow.com/questions/1410563/what-is-the-difference-between-a-definition-and-a-claclaration –
你可能会想到一个模板它是显式实例化http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file –