Главная страница
    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.46 MB
Время: 0.02 c
1-1138803775
OlegNik
2006-02-01 17:22
2006.03.05
Перехват завершения работы Windows.


2-1140085412
Creative
2006-02-16 13:23
2006.03.05
обнуление поля при выбранном чекбоксе


15-1139161550
Джо
2006-02-05 20:45
2006.03.05
Ищу: Графоманский сайт


3-1136875487
alsov
2006-01-10 09:44
2006.03.05
Таблица MSSQL, которая не записывается на жесткий


2-1140177674
zorik
2006-02-17 15:01
2006.03.05
Не считываются cookies (cgi)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский