Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизИмпорт функции из DLL Найти похожие ветки
← →
Wistler © (2006-01-29 13:12) [0]Доброго времени суток.
Использую mysqllib.dll. Необходимо импортировать из неё функцию mysql_escape_string.
Описание для C выглядит:unsigned long DCALL mysql_escape_string(char *to,const char *from, unsigned long from_length);
Я описываю:function mysql_escape_string(OutStr:PPChar; const InStr:PPChar; InLength:Cardinal):Cardinal;stdcall;external thelib;
При вызове выдаётся сообщение об ошибке в библиотеке. В чём причина???
← →
Вася (2006-01-29 13:32) [1]function mysql_escape_string(toS:PChar;from: PChar;from_length: Longint) :Longint;stdcall;external thelib;
← →
Wistler © (2006-01-29 14:03) [2]
> function mysql_escape_string(toS:PChar;from: PChar;from_length:
> Longint) :Longint;stdcall;external thelib;
К сожалению не помогло.
В таком виде тоже не работает:
function mysql_escape_string(OutStr:PChar; const InStr:PChar;
InLength:Cardinal):Cardinal;stdcall;external thelib;
← →
Wistler © (2006-01-29 14:11) [3]Var
A:PChar;
Причём при вызовеmysql_escape_string(@A, "Hello", 5);
в Watch"е видно следующее:
A - $6C6C6548 (Watch Properties: Pointer)
@A - $454EC8 (Watch Properties: Default)
A - (Watch Properties: Default)
В первом случае $6C6C6548="lleH"
← →
palva © (2006-01-29 18:13) [4]Ответ васи у меня работает. Только название библиотеки у меня другое.
← →
isasa © (2006-01-29 21:37) [5]Выделить место для принимающего буфера(А)?
var a: PChar;
a:=StrAlloc(255);
mysql_escape_string(a, "Hello", 5);
← →
Джо © (2006-01-29 21:45) [6]А там точно не
cdecl?
Библиотеки под руками нет, проверить не могу, а что такое DCALL не помню.
← →
isasa © (2006-01-29 22:08) [7]Как мне нравится директива #define ...
Если считать, что
#define
DCALL _stdcall
в_гробу_я_видел_все_стадарты _stdcall
одно и то-же, то привильно. Для MS VS 2003 ни в хелпе, ни в заголовках сие не нашел.
← →
Lamer@fools.ua © (2006-01-29 23:40) [8]>>Вася (29.01.06 13:32) [1]
unsigned long — это не Longint, а Cardinal.
>All
DCALL — опечатка, похоже. У меня в mysql.h:unsigned long STDCALL mysql_escape_string(char *to,const char *from,
unsigned long from_length);
← →
palva © (2006-01-30 01:04) [9]Lamer@fools.ua © (29.01.06 23:40) [8]
> DCALL — опечатка, похоже. У меня в mysql.h:
Значит у вас есть MySQL? Тогда какое у вас имя библиотеки? У меня в MySQL ver 5 имя libmysql.dll А автор пишет
> Использую mysqllib.dll.
Может это какая нибудь разработка третьей фирмы с другим интерфейсом?
← →
Lamer@fools.ua © (2006-01-30 09:13) [10]>Значит у вас есть MySQL?
Нету. Но когда-то был.
>Тогда какое у вас имя библиотеки?
libmySQL.dll. Это из 4-й версии.
← →
Wistler © (2006-01-30 10:16) [11]Спасибо всем за ответы, помогло
> a:=StrAlloc(255);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.02 c