|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 11, 2003 19:48:07 я в рантайме получаю от GUI имя dll b и формат вызываемой функции. Так как GetProcAddress требует явно указать тип на стадии компиляции, что не возможно сделать в рантайме на С или асме, то я хочу обявить функцию (void *)(void), а затем перед вызовом функции на ассемблере запихнуть в стек параметры. Могу ли я это сделать? и как запихивать в стек параметры функций в ассемблерных вставках на С (VC7.0)? __asm{ push[arg1]; .... }??? |
|
|
Дата: Мар 13, 2003 16:53:39 Так как GetProcAddress требует явно указать тип на стадии компиляции То есть? рантайме на С или асме На асме всё можно сделать.. :) Чесное слово читал 4 раза и еле уловил мысль... Попробуйте перефразировать вопрос и написать что именно надо!!!! 2. Насколько я понял, вам нужно вызвать функцию из ДЛЛ динамически получив её прототип. GetProcAddress здесь понадобится только для того, чтобы получить адрес функции. Вы должны написать функцию, которая принимая прототип функции выполняет её вызов. 3. Могу ли я это сделать? и как запихивать в стек параметры функций в ассемблерных вставках на С (VC7.0)? Всё можно. Но я бы лучше написал отдельный асм модуль. Тем более, что для VC7.0 асм входит в пакет. Написал бы я это функцией.. (смотреть выше). А передача параметров между С и асмом не проблема. Объявите тип вызова как на С так и на MASM и прототипы. Ведь в MASM то же можно объявить прототип функций |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087 |