Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.012 c
1-1138909389
Piter
2006-02-02 22:43
2006.03.05
аналог TList с полем Data


2-1139737431
psa247
2006-02-12 12:43
2006.03.05
Убрать SmallImages у ListView


15-1139816367
tradakad
2006-02-13 10:39
2006.03.05
о формах


2-1139312638
yk
2006-02-07 14:43
2006.03.05
Глюки с IBDataSet


1-1138748103
FrykT
2006-02-01 01:55
2006.03.05
Временно отключить перерисовку скролла ListView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский