Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > c++ массив stdcall функций |
Автор: ni1 30.6.2014, 13:06 | ||||
c++ массив stdcall функций с переменным числом параметров. Как это сделать? В C это делается так:
C++ никак не хочет вызывать функции с необъявлеными параметрами. Есть сделать так
то компилятор считает что функция cdecl. Все найденые примеры с одинаковым числом параметров или cdecl, а мне нужно stdcall. Может какие настройки в компиляторе есть, отключающие проверку? |
Автор: bems 30.6.2014, 14:20 |
никак. в stdcall вызываемая функция чистит стек, это не сочетается с переменным числом параметров. |
Автор: ni1 30.6.2014, 15:00 |
Понятно. С++ ###, С рулит. А если число параметров не перменное? 3 функции, изветстно что 3 - 5 - 1 параметров у них. |
Автор: ni1 30.6.2014, 19:42 |
"C" код в первом посте работает как надо. Без проверок типов, просто вызов stdcall функций по адресам из массива, не копируя эти адреса куда-то еще. Неужели C++ не может справиться с такой простой задачей? |
Автор: bems 30.6.2014, 19:57 | ||
боюсь, это означает что компилер С молча сделал из функции cdecl. потому что stdcall не бывает variadic
легко ![]() |
Автор: ni1 30.6.2014, 21:33 | ||||
у компилера микрософта, значит, бывает:
|
Автор: bems 30.6.2014, 23:31 |
ааа так это не variadic. он просто вызывал как stdcall то что дали, не проверяя ничего. короч этим ты обязан слабой типизации сей, а не переменному числу параметров, его-то тут и нет |