Ctest222Dlg::aion = 0;//FindWindow(NULL,L"AION Client");
請教大家一點問題,我在我的MFC的類里面加了一個STATIC CWnd* efsf;加了這么一句后一切正常,但是我在INITDIALOG里面初始化這個成員的時候就提示LNK2001 LNK1120錯誤,請問是怎么回事呀?
uj5u.com熱心網友回復:
到底是運行錯誤,還是連接錯誤?uj5u.com熱心網友回復:
鏈接錯誤查看鏈接庫有沒有丟失...uj5u.com熱心網友回復:
靜態變數, 需要有宣告和定義.你多半是只有宣告沒有定義吧.
STATIC CWnd* efsf; 這句僅僅是宣告, 還需要定義實作它.
一般在cpp檔案中這樣寫
CWnd* Ctest222Dlg::efsf=NULL; //假設efsf變數是 Ctest222Dlg的成員變數
uj5u.com熱心網友回復:
因為初始化的位置不對,靜態成員變數是脫離類的實體化物件存在的。在CPP檔案的頂部(不要寫到任何一個類成員函式內部):
CWnd* Ctest222Dlg::efsf=NULL
uj5u.com熱心網友回復:
類內的靜態變數 除了申明, 還要在.cpp中添加 變數實體//.h
class xxxClass
{
static int m_data;
};
//.cpp
int xxxClass::m_data = 0;
uj5u.com熱心網友回復:
需要定義它,在CPP檔案中再定義一下即可~轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/126411.html
標籤:基礎類
下一篇:mfc程式運行時錯誤
