对应表a,里面有r1-r4四项,下面这个是没有问题的:
void CaSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CScoreSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[r1]"), m_a1);
RFX_Long(pFX, _T("[r2]"), m_a2);
RFX_Double(pFX, _T("[r3]"), m_a3);
RFX_Double(pFX, _T("[r4]"), m_a4);
}
疑问1:不把每项都取出来有问题
debug assertion failed!
file:dbcore.cpp
line:2979
代码如下:
void CaSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CScoreSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[r1]"), m_a1);
         RFX_Double(pFX, _T("[r4]"), m_a4);
}
疑问2:为什么参数不可以为数组,结构体
LONG a[2];
Double b[2];
void CaSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CScoreSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[r1]"), a[0]);
RFX_Long(pFX, _T("[r2]"), a[1]);
RFX_Double(pFX, _T("[r3]"), b[0]);
RFX_Double(pFX, _T("[r4]"), b[1]);
}
或者
typedef struct data{
LONG m_a1;
LONG m_a2;
Double m_a3;
Double m_a4;
}data,*pdata;
data b;
void CaSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CScoreSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[r1]"), b.m_a1);
RFX_Long(pFX, _T("[r2]"), b.m_a2);
RFX_Double(pFX, _T("[r3]"), b.m_a3);
RFX_Double(pFX, _T("[r4]"), b.m_a4);
}
这两种情况都会报错,为什么