Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
#1

OnSize и 64 бита - C++

03.04.2010, 05:56. Просмотров 269. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Пишу в Visual Studio 2008, приложение с диалоговым окном. Надо обработать OnSize. Добавил в класс CMDlg

afx_msg void OnSize(UINT nType, int cx, int cy);

в карту

ON_WM_SIZE()

ну и саму реализацию

C++
1
2
3
4
5
void __fastcall CMDlg::OnSize(UINT nType, int cx, int cy)
{
    CWnd * hl = GetDlgItem(IDC_LIST1);
    hl->MoveWindow(7, 26, cx - 14, cy - 33, 1);
}
В 32 битах все работает норм. При переходе на 64 бита программа вылетает при запуске с необработанным исключением. При отладке увидел, что функция OnSize берет параметры из стека, хотя должна из регистров, ведь в 64 битах применяется fastcall. Как сказать компилятору, чтобы он вызывал OnSize по нужному соглашению вызовов? Добавление __fastcall перед именами функций ничего не дало...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2010, 05:56     OnSize и 64 бита
Посмотрите здесь:

Обработка бита C++
Обработка бита C++
Замена бита единицей C++
C++ Инвертировать 2 средних бита в числе
Копирование бита C++
C++ Проверка бита
Компилятор С++ для Windows XP, 32 бита C++
Установка бита C++
Замена заданного с клавиатуры бита C++
Наличие бита в байте C++
Замена бита единицей C++
Проверка бита на единицу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru