首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现出WTL头文件?

如何实现出WTL头文件?
EN

Stack Overflow用户
提问于 2017-01-24 01:33:28
回答 1查看 374关注 0票数 1

WTL是模板库,所以我必须在模板库头文件中实现它。

我希望在.cpp文件中实现我的逻辑,否则,我将不得不编写一个巨大的头文件。

例如,在MainFrm.h

代码语言:javascript
复制
// ...
// MainFrm.h
class CMainFrame : 
    public CFrameWindowImpl<CMainFrame>, 
    public CUpdateUI<CMainFrame>,
    public CMessageFilter, public CIdleHandler
{
  //...
  void function1()
  {
    //...
  }

  void function2()
  {
    //...
  }
}

我想让function1()function2()myfunction.cpp,怎么做呢?

请指点。

编辑:

解决了!感谢Jan .,我在WTL项目中加入了myfunction.cpp,并添加了一些行:

MainFrm.h:

代码语言:javascript
复制
// ...
// 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:

代码语言:javascript
复制
// myfunction.cpp
#include "stdafx.h" 
#include "MainFrm.h"
void CMainFrame::functionx()
{
  //...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 00:34:23

在您的标题中放置声明

代码语言:javascript
复制
// MainFrm.h
class CMainFrame : 
    public CFrameWindowImpl<CMainFrame>, 
    public CUpdateUI<CMainFrame>,
    public CMessageFilter, public CIdleHandler
{
  //...
  void functionx();
  //...
};

在您的.cpp文件中放置定义

代码语言:javascript
复制
#include MainFrm.h

void CMainFrame::functionx()  
{  
    // more code  
} 

编译器错误

您似乎缺少WTL报头,包括

代码语言:javascript
复制
#include <atlframe.h>
#include <atlsplit.h>

但是,在你的标题中要确保你

代码语言:javascript
复制
#pragma once

代码语言:javascript
复制
#ifndef UNIQUE_HEADER_NAME
#define UNIQUE_HEADER_NAME
//header code
#endif

这将停止重复声明。

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

https://stackoverflow.com/questions/41818608

复制
相关文章

相似问题

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