error C2065: “m_pStrategyDlg”: 未声明的标识符

itpstocke 2014-10-28 03:19:54
新手请教个问题,网上查了半天也没找到原因。
TESTStrategy.h里定义一个对话框的(TestItpDialog* m_pStrategyDlg;),但在TESTStrategy.cpp里面Strategy_CreatWindow函数使用该变量时总是提示“error C2065: “m_pStrategyDlg”: 未声明的标识符”。
TESTSTRATEGY.H代码:
#pragma once
#include "strategybase.h"
#include "list"
#include <vector>
#include "map"
#include "TestItpDialog.h"//TestItpDialog 类的头文件

using std::vector;
using std::list;
using std::map;

const int MAX_BAR_SIZE = 1000;

class TestStrategy :
public CStrategyBase
{
public:
TestStrategy(void);
~TestStrategy(void);

virtual int Strategy_OnStart(IiTPInterface* piTP);
virtual int Strategy_OnStop(IiTPInterface* piTP);
virtual int Strategy_CreatWindow(HWND hWnd,HWND hWndParent);
virtual int Strategy_DestroyWindow(HWND hWnd);

private:

TestItpDialog* m_pStrategyDlg; // 策略窗口

};

TESTStrategy.cpp里
int Strategy_CreatWindow(HWND hWnd,HWND hWndParent)
{
// 创建策略窗口
AFX_MANAGE_STATE(AfxGetStaticModuleState());
m_pStrategyDlg = new TestTipDialog;
if (NULL == m_pStrategyDlg)
{
ASSERT(FALSE);
return -1;
}
if (!::IsWindow(m_pStrategyDlg->GetSafeHwnd()) && !m_pStrategyDlg->Create(TestItpDialog::IDD))
{
return -1;
}
m_pStrategyDlg->ModifyStyleEx(WS_POPUP | WS_BORDER | WS_DLGFRAME,WS_CHILD);
hWnd = m_pStrategyDlg->GetSafeHwnd();
return 0;
}

...全文
63 点赞 收藏 5
写回复
5 条回复
SuperDay 2014年10月28日
int CStrategyBase::Strategy_CreatWindow(HWND hWnd,HWND hWndParent)
回复 点赞
itpstocke 2014年10月28日
TestItpDialog.h里的类是TestItpDialog。另外回复xpdavis 兄,确实是没有该成员函数,我把名字搞错了,应该是int Strategy_CreateWindow()。但修改后问题依然,就是在CreateWindow函数中不认变量m_pStrategyDlg。我做过测试,把CreateWindow函数注释掉,在TestStrategy类的构造函数中赋值为NULL,编译都没有问题。
回复 点赞
ouyh12345 2014年10月28日
看看TestItpDialog.h里的类是什么名字,CTestItpDialog?
回复 点赞
itpstocke 2014年10月28日
你好,int Strategy_CreatWindow(HWND hWnd,HWND hWndParent)是CStrategyBase的成员函数。另外你怎么看出其不是CStrategyBase的成员函数?
回复 点赞
SuperDay 2014年10月28日
int Strategy_CreatWindow(HWND hWnd,HWND hWndParent) 不是CStrategyBase的成员函数,当然不能访问了
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告