VC新手提问急

CrazyNPC GSK 服务器端工程师  2009-07-24 05:34:51
我在自定义的对话框类中想添加一个CArray<InfoStruct,InfoStruct &> infoArray 这个变量。并且是吧他定义成类变量
也就是static类型的。
问题是在哪定义?我在写在对话框类定义中的任何位置他编译链接的时候都说
unresolved external symbol "public: static class CArray<struct InfoStruct,struct InfoStruct &> CDlgConsole::m_infoArray" (?m_infoArray@CDlgConsole@@2V?$CArray@UInfoStruct@@AAU1@@@A)
请问。怎么解决。先谢谢了
...全文
62 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
marrco2005 2009-07-24
头文件
class CDlgConsole : public CDialog
{
public:
static CArray <InfoStruct,InfoStruct &> infoArray ; // 这是声明

}

然后在 CPP 文件里
CArray <InfoStruct,InfoStruct &> CDlgConsole::infoArray ; // 就放在构造函数前边吧
CDlgConsole::CDlgConsole () : public CDialog(...)
{
}
回复
baggio1984 2009-07-24
[Quote=引用 1 楼 oyljerry 的回复:]
h中定义了,你还要cpp初始化一下
CArray <InfoStruct,InfoStruct &> infoArray;
[/Quote]
在类的定义中
加上 static CArray <InfoStruct,InfoStruct &> infoArray;
在cpp中加上
CArray <InfoStruct,InfoStruct &> CDlgConsole::infoArray;
回复
CrazyNPC 2009-07-24
class CDlgConsole : public CDialog
{

// Construction
public:
CDlgConsole(CWnd* pParent = NULL); // standard constructor

// Dialog Data
//{{AFX_DATA(CDlgConsole)
enum { IDD = IDD_DIALOG1 };
CListBox m_lstUnitList;
UINT m_uMaterialWidth;
UINT m_uMaterialHeight;
UINT m_uUnitAmount;
UINT m_uUnitHeigth;
CString m_strUnitName;
UINT m_uUnitWidth;
//}}AFX_DATA


// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgConsole)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CDlgConsole)
afx_msg void OnBtnAdd();
afx_msg void OnBtnDraw();
afx_msg void OnBtnQuit();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
BOOL OverMaterialAreaOrNot();


};
具体点。放在哪。
回复
oyljerry 2009-07-24
h中定义了,你还要cpp初始化一下
CArray <InfoStruct,InfoStruct &> infoArray;
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告