![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
ni1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 30.6.2014 Репутация: нет Всего: нет |
c++ массив stdcall функций с переменным числом параметров. Как это сделать?
В C это делается так:
C++ никак не хочет вызывать функции с необъявлеными параметрами. Есть сделать так
то компилятор считает что функция cdecl. Все найденые примеры с одинаковым числом параметров или cdecl, а мне нужно stdcall. Может какие настройки в компиляторе есть, отключающие проверку? |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
никак. в stdcall вызываемая функция чистит стек, это не сочетается с переменным числом параметров.
-------------------- Обижено школьников: 8 |
|||
|
||||
ni1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 30.6.2014 Репутация: нет Всего: нет |
Понятно. С++ ###, С рулит.
А если число параметров не перменное? 3 функции, изветстно что 3 - 5 - 1 параметров у них. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
а что, в С variadic функция может быть stdcall? это новость
ну это всё если тебе нужны именно указатели на функции и если ты хочешь при этом сохранить проверку типов -------------------- Обижено школьников: 8 |
|||
|
||||
ni1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 30.6.2014 Репутация: нет Всего: нет |
||||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
боюсь, это означает что компилер С молча сделал из функции cdecl. потому что stdcall не бывает variadic
легко ![]() -------------------- Обижено школьников: 8 |
|||
|
||||
ni1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 30.6.2014 Репутация: нет Всего: нет |
у компилера микрософта, значит, бывает:
|
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
ааа
так это не variadic. он просто вызывал как stdcall то что дали, не проверяя ничего. короч этим ты обязан слабой типизации сей, а не переменному числу параметров, его-то тут и нет -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |