Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Очень странно 06.07.07 11:45 Число просмотров: 2694
Автор: amirul <Serge> Статус: The Elderman
|
> Код > ::SetWindowLongPtr( m_hWnd, GWL_USERDATA, > reinterpret_cast<LONG_PTR>( this )); > приводит к : warning C4244: 'argument' : conversion from > 'LONG_PTR' to 'LONG', possible loss of data
Во-первых под x64 этот код у тебя вообще не скомпилируется. Ну нету у него GWL_USERDATA, а есть GWLP_USERDATA
А во-вторых (и это странно), такое ощущение, что третий аргумент у тебя объявлен LONG-ом. Посмотри откуда у тебя инклудится winuser.h и посмотри в нем прототип SetWindowLongPtr. Ну еще глянь где объявляется typedef на LONG_PTR. Если лень продираться через все #ifdef-ы, то включи в пропертях проекта Configuration Properties->C/C++->Preprocessor->Generate Preprocessed File.
И после этого разбирайся какой typedef у тебя включен и почему.
> И обратно, код > CTabDialog* pdialog > =reinterpret_cast<CTabDialog*>(GetWindowLongPtr(hwndD > lg, GWL_USERDATA)); > приводит к : warning C4312: 'reinterpret_cast' : conversion > from 'LONG' to 'CTabDialog *' of greater size > > Работать-то работает, но как исправить по-существу кастинг? > > Использую VS 2005 Express . > Спасибо.
|
|
|