語言: C++,MFC問題的指針數組
問題:我試圖傳遞一個函數一些指針中包含的陣列內的變量,但是編譯器不似乎不同意我的做法。這裏是我的代碼:
頭文件:
CString m_strTop;
CString m_strLeft;
CString m_strRight;
CString m_strBottom;
CString *var[4];
源文件: 構造函數()
CString *var[4] = {
&m_strTop
, &m_strLeft
, &m_strRight
, &m_strBottom
};
源文件: 的DoDataExchange()
void FSC_3DPersp::DoDataExchange(CDataExchange* pDX)
{
CSAPrefsSubDlg::DoDataExchange(pDX);
for(int i = 2001, j = 0; i <= 2004, j < 4; i++, j++)
{
DDX_Text(pDX, i, &var[j]); // 'i' is the ID of the textbox
}
}
- DDX_TEXT期待什麼 -
void AFXAPI DDX_Text(
CDataExchange* pDX,
int nIDC,
CString& value
);
我想做我DataExchange這種方式,因爲在我的幾個文件,我有向上的75個變量,使用循環可以顯着地壓縮代碼,並簡化事情。
我知道我遇到的問題是我只是給DDX_Text提供了錯誤的參數,但我知道它需要CStrings。但是,我很確定我沒有正確引用它們。
任何幫助將不勝感激!
〜喬恩
什麼是錯誤信息? – StevieG 2011-06-13 15:00:10
我修復瞭解引用錯誤,但是現在我的程序在代碼到達for循環時崩潰。我收到以下錯誤:「訪問衝突讀取位置0x000000a3」。也許我的索引不正確?我不知道還有什麼可以... – Jon 2011-06-13 15:08:08
你有75個控件的對話框?你真的想完成什麼?對於循環而言,可能會引起眉毛,就像我對CRect的字符串表示一樣。 – AJG85 2011-06-13 15:21:39