WTLはテンプレートライブラリなので、テンプレートライブラリのヘッダファイルに実装する必要があります。WTLヘッダーファイルを実装する方法は?
私のロジックを.cpp
に実装したいのであれば、私は巨大なヘッダファイルをコーディングする必要があります。例えば
、MainFrm.h
// ...
// MainFrm.h
class CMainFrame :
public CFrameWindowImpl<CMainFrame>,
public CUpdateUI<CMainFrame>,
public CMessageFilter, public CIdleHandler
{
//...
void function1()
{
//...
}
void function2()
{
//...
}
}
に私はそれを行う方法を、myfunction.cpp
でfunction1()
とfunction2()
をしたいですか?
ご案内しています。
編集:
解決済み!ヤンS.のおかげで、私はWTLプロジェクトにmyfunction.cppを含め、いくつかの行を追加しました:
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-definition-and-declaration –
あなたはテンプレートを前に考えているかもしれませんそれは明示的にインスタンス化されていますhttp://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file –