Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Импорт функции из 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
1-1138957761
t0mk4
2006-02-03 12:09
2006.03.05
Image1. как вывести только один кусок картинки?


1-1138985411
Толян
2006-02-03 19:50
2006.03.05
дил-ап


3-1136465833
tytus
2006-01-05 15:57
2006.03.05
BDE Error Field(xxx) mast have value


15-1139392403
Kerk
2006-02-08 12:53
2006.03.05
Статистика: десятка языков Интернета


15-1139834880
Nick Denry
2006-02-13 15:48
2006.03.05
Gtk2 и Delphi