проблема с макросом DDX_FLOAT
От: zabriski  
Дата: 29.05.05 23:48
Оценка: :))
Помогите разобраться, плз:

Описываю макрос в карте:

BEGIN_DDX_MAP(CMainDlg)
...
DDX_FLOAT(IDC_EDT_A, A)
...
END_DDX_MAP()


Переменная А описана как double, IDC_EDT_A -- соответственно, айдишник эдит-бокса.

Так вот, при компиляции выдаёт эррор:
error C3861: 'DDX_FLOAT': identifier not found, even with argument-dependent lookup

Исчу, где ж этот макрос определён, нахожу в файле atlddx.h следующее:

#ifdef _ATL_USE_DDX_FLOAT
#define DDX_FLOAT(nID, var) \
if(nCtlID == (UINT)-1 || nCtlID == nID) \
{ \
if(!DDX_Float(nID, var, bSaveAndValidate)) \
return FALSE; \
}

...

#endif //_ATL_USE_DDX_FLOAT


и ещё такое:


#ifdef _ATL_USE_DDX_FLOAT

...

BOOL DDX_Float(UINT nID, float& nVal, BOOL bSave, BOOL bValidate = FALSE, float nMin = 0.F, float nMax = 0.F, int nPrecision = FLT_DIG)
{
...
}

BOOL DDX_Float(UINT nID, double& nVal, BOOL bSave, BOOL bValidate = FALSE, double nMin = 0., double nMax = 0., int nPrecision = DBL_DIG)
{
...
}
#endif //_ATL_USE_DDX_FLOAT


Получается, что вся загвоздка в загадочном, неопределённом, судя по всему, макросе _ATL_USE_DDX_FLOAT!
Почему он не определён?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.