Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];
ВнизВопросик на тему вызова сишных функций из dll Найти похожие ветки
← →
Tihas (2003-04-29 16:29) [0]Ну вот например, я знаю библиотеку crtdll.dll, там
почти все стандартные сишные функции , всё бы хорошо, еслиб не одно но. Как определить сишную функцию на паскале,
то есть экспортировать если известно, что там переменное количество параметров, типа "...".
array of const,array of pointer
К примеру, sscanf(buf,format:pchar;vars:array of const);cdecl;external "crtdll.dll" name "sscanf";
не катит, что делать?
Заранее спасибо.
← →
MBo (2003-04-29 16:38) [1]Нетривиально. На ассемблере в стек положить параметры в соответствии с соглашением cdecl.
а пример на Дельфи см:
http://delphibase.endimus.com/?action=viewfunc&topic=strchange&id=10162
← →
jack128 (2003-04-29 16:38) [2]насколько я знаю никак. Pascal не поддерживает переменно число параметров...
← →
MBo (2003-04-29 16:42) [3]>jack128
array of const, но это не совсем аналог.
← →
Tihas (2003-04-29 16:44) [4]MBo об ассемблере я сразу же подумал, но всегда же хочется
попроще.
Спасибо за ответ.
← →
jack128 (2003-04-29 16:47) [5]MBo © (29.04.03 16:38)
Может я чего не понял, но где в функции wvsprintf параметр "..."?
typedef char * va_list;
int
WINAPI
wvsprintfA(
LPSTR,
LPCSTR,
va_list arglist);
← →
jack128 (2003-04-29 16:50) [6]MBo © (29.04.03 16:42)
Если чесно, то я думал, что это один параметр(скорее всего реализуется, как массив указателей)
← →
MBo (2003-04-29 17:05) [7]>jack128
Угу, ошибся я, видимо
← →
Serginio (2003-04-29 17:09) [8]Помоему в 7 можно вызывать функции с переменными параметрами.
Во всяком случае точно помню, что читал про это.
← →
REA (2003-04-29 17:17) [9]D7
When importing a C function that takes a variable number of parameters, use the varargs directive. For example,
function printf(Format: PChar): Integer; cdecl; varargs;
The varargs directive works only with external routines and only with the cdecl calling convention.
← →
Tihas (2003-04-29 18:12) [10]REA ©
Спасибо.
Всё такие есть протое решение.
← →
Tihas (2003-04-29 18:19) [11]А в D6 тоже работает это просто чудо, так удобно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.09 c