|
|
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Есть DLL-ка, в которой прописана функция extern “C” DWORD call_sb_kernel( DWORD func, void *in_arg, void *out_arg); Функция использует метод вызова языка С (cdecl). Ниже приводится описание параметров функции. DWORD func Номер вызываемой функции ядра. void *in_arg Указатель на структуру, содержащую параметры, передаваемые функции. Структура описана следующим образом. typedef struct tagInArg{ void *Reserved; void *in_struct; } InArg; Параметр Reserved должен иметь значение NULL, если противное специально не оговаривается в описании конкретной функции. Параметр in_struct – указатель на буфер типа struct_in_clX, где X – номер класса , для функций ненулевого класа, или указатель на буфер типа struct_inX, где X – номер функции класса 0, или NULL, если функция не принимает параметров. void *out_arg Указатель на структуру, в которой возвращается результат. Структура описана следующим образом. typedef struct tagOutArg{ DWORD ErrorCode; //код завершения операции DWORD Flags; //флаги последующей обработки void *Reserved; void *out_struct; } OutArg; Вопрос чайника - как вызывать эту функцию из внешней программы? Заранее благодарен за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 14:32 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. динамическая линковка, что то в этом роде - код не проверял, сорри времени нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 16:41 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
call_sb_kernel = (fcall_sb_kernel*)GetProcAddress(hDll, "call_sb_kernel"); вместо этого call_sb_kernel = (fcall_sb_kernel)GetProcAddress(hDll, "call_sb_kernel"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 16:42 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
и не забудь выгрузить DLL FreeLibrary(hDll); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 16:46 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
David_djanи не забудь выгрузить DLL FreeLibrary(hDll); Добавлю ышо...что... 1) Описанный выше способ - называеться "Явной загрузкой". 2) Есть ышо и "не явная"... Суть сводиться к следующему... В месте юзанья подставляете ашник из дэлеле с экспортом. И используете классы или переменные так, как если бы они были бы у Вас в коде. Линковщику указываете путя и ЛИБ файл вашей дэлеле. всё... удачи Вам (круглый) ЗЫ А лучше почитайте Джэфри Рихтера - не плохая парта по Win32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:38 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
2 kolobok Мощно задвинул Долго врубался в твою терминологию. Рихтер нервно отдыхает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:00 |
|
||
|
Вызов функции
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Мощно задвинул ... опять хаешь ? :) ну вот.. ик.. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33248212&tid=2032830]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 337ms |

| 0 / 0 |
