проблема с макросом 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!
Почему он не определён?
Re: проблема с макросом DDX_FLOAT
От: MNZ Россия  
Дата: 30.05.05 06:56
Оценка:
Здравствуйте, zabriski, Вы писали:

Z>Получается, что вся загвоздка в загадочном, неопределённом, судя по всему, макросе _ATL_USE_DDX_FLOAT!

Z>Почему он не определён?

Эээ... Потому что ты его не определил?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[2]: проблема с макросом DDX_FLOAT
От: zabriski  
Дата: 30.05.05 09:23
Оценка:
Здравствуйте, MNZ, Вы писали:

Z>>Получается, что вся загвоздка в загадочном, неопределённом, судя по всему, макросе _ATL_USE_DDX_FLOAT!

Z>>Почему он не определён?

MNZ>Эээ... Потому что ты его не определил?


Но ведь остальные макросы -- DDX_INT, DDX_TEXT и т.д. прекрасно работают, а с флоатом возникает глюк, причём в документации разной они обычно описываются вместе и ни о каких нюансах работы именно с флоатом речь не идёт... Я не думаю, что _ATL_USE_DDX_FLOAT должен явно мной определяться .
Re[3]: проблема с макросом DDX_FLOAT
От: Onorin Нигерия  
Дата: 30.05.05 09:50
Оценка:
Здравствуйте, zabriski, Вы писали:

Z>Здравствуйте, MNZ, Вы писали:


Z>>>Получается, что вся загвоздка в загадочном, неопределённом, судя по всему, макросе _ATL_USE_DDX_FLOAT!

Z>>>Почему он не определён?

MNZ>>Эээ... Потому что ты его не определил?


Z>Но ведь остальные макросы -- DDX_INT, DDX_TEXT и т.д. прекрасно работают, а с флоатом возникает глюк, причём в документации разной они обычно описываются вместе и ни о каких нюансах работы именно с флоатом речь не идёт... Я не думаю, что _ATL_USE_DDX_FLOAT должен явно мной определяться .

Посмотри atlddx.h и тебе станет ясно почему так.
Re[3]: проблема с макросом DDX_FLOAT
От: MNZ Россия  
Дата: 30.05.05 10:16
Оценка:
Здравствуйте, zabriski, Вы писали:

Z>Я не думаю, что _ATL_USE_DDX_FLOAT должен явно мной определяться .


Он должен именно тобой явно определяться, т.к. поддержка float невозможна одновременно с опцией atlmincrt. А это решать только тебе.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[4]: проблема с макросом DDX_FLOAT
От: zabriski  
Дата: 30.05.05 11:41
Оценка:
Здравствуйте, MNZ, Вы писали:

MNZ>Он должен именно тобой явно определяться, т.к. поддержка float невозможна одновременно с опцией atlmincrt. А это решать только тебе.


Спасибо, получилось! Я просто сначала не совсем въехала, где его определять. Оказалось, перед подключением atlddx.h, как ни странно тормозю....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.