Страница 1 из 1

UDF str2blob

Добавлено: 12 янв 2006, 11:49
Junker
Возникла проблемма при возвращении блоба удфкой:

function str2blob(str:PChar; Blob: PIB_Blob):PIB_BLOB; cdecl; export;
begin
result:= Blob;
if not Assigned(Blob) or not Assigned(Blob^.Handle) then
Exit;
blob^.PutSegment(Blob^.Handle, str, StrLen(Str));
end;


Возвращает вместо введенной строки мусор, правда длинну строки соблюдает.... Компилилось на FPC 2.0.2 под винды... что не так? может кто сталкивался, подскажите...

Добавлено: 12 янв 2006, 13:15
kdv
ты бы примеры на сайте посмотрел. Статью Кукарцева, udfdemo и т.п. Указатель на блоб из функции вернуть нельзя, вообще то. Можно только через входной параметр.

Добавлено: 12 янв 2006, 14:02
Junker
Это то понятно... В случае с функцией, указатель на блоб возвращается через входной параметр, а не через стандартный вывод... При переводе на процедуру результат не поменялся...

procedure str2blob(str:PChar; Blob: PIB_Blob); cdecl; export;
begin
if not Assigned(Blob) or not Assigned(Blob^.Handle) then
Exit;
blob^.PutSegment(Blob^.Handle, str, StrLen(str));
end;

Добавлено: 12 янв 2006, 15:06
kdv
пример брал из FreeUDFLib, с сайта, самый последний вариант? Декларация putsegment совпадает? Функция из FreeUDFLib работает так же? Отлаживать функцию в Delphi пробовал?