powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UDF-проблема
4 сообщений из 4, страница 1 из 1
UDF-проблема
    #32005766
Arch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот функция в библиотеке (DLL)

function strcatsi(pS :PChar;cnt:PChar):PChar;stdcall;
var
s,s1,s2:String;
begin
SetString(s1,pS,StrLen(pS));
SetString(s2,cnt,StrLen(cnt));
s:=Trim(s1)+Trim(s2);
result:=PChar(s);
end;

Вот ее объявление в скрипте

DECLARE EXTERNAL FUNCTION f_strcatsi CSTRING(80),CSTRING(25)
RETURNS CSTRING(100) FREE_IT
ENTRY_POINT "strcatsi" MODULE_NAME "Apart";

Вот ее вызов из скрипта
sToUDF=f_strcatsi(sToPass,CAST(lRecCountInPHistory AS VARCHAR(25)));

Все это работает , но:
Мне нужно 2-м параметром иметь тип INTEGER , но в этом случае в
DLL передается всякий мусор. Вот и приходится заниматься преобразованием
lRecCountInPHistory туда и обратно. Как быть ?
(про || не надо)
...
Рейтинг: 0 / 0
UDF-проблема
    #32005768
Kochmin_Alexandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хороший вопрос,
но спроси лучше на forum.cps.ru
или в конференции в fido7 fido7.su.dbms.interbase (например через www.talk.ru)
а тут тебе врядли кто ответит
...
Рейтинг: 0 / 0
UDF-проблема
    #32005809
judith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметры в UDF передаются по ссылке, поэтому перед объявлением параметра должно стоять var. При объявлении функции надо использовать ключевые слова cdecl и export: function strcatsi(var pS :PChar; var cnt: Integer):PChar; cdecl; export;
...
Рейтинг: 0 / 0
UDF-проблема
    #32006852
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстрее написать свою UDF -- проверено лично.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UDF-проблема
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]