Пробую делать Dll для Blitz3D на Delphi 7.
Первые тормоза появились при передачи обработанного текста из DLL-ки в программу Blitz3D.
Пишу на Delphi 7 (Pascal) - потому что мне пока здесь удобно.
library Delphi;
uses
SysUtils,
Classes;
{$R *.res}
function npumep(S:string):string; // <------- В СКОБКАХ () ВОЗМОЖНО БЕЗ НИЧЕГО
begin
Result:='Blitz3D npuBeT u3 Delphi 7';
end;
exports npumep;
begin
end.
Скомпилировал
Delphi.dll
Создал
Delphi.decls
.lib "Delphi.dll"
npumep$():"npumep"
Закинул эти файлы в папку
Userlibs. (т.е.
куда и надо)
Создал пример-программу
Delphi.bb
Graphics3D 800,600,32,2
MyText$=npumep$ (); <------- БЕЗ СКОБОК ПУСТО, СО СКОБКАМИ () ОШИБКА
Repeat
Text 10,10,"!!! "+MyText$+" !!!"
Flip
Until KeyHit(1)=True
В итоге выхожит ошибка
| Memory access violation |.
Возможно где-то пустота или потеря данных

А может не совместимость String
При попытках где-то добавить или убрать текст$ в скобках, или приписать $ - получается пустой текст..
С Integer всё нормально передаётся.
function npumep():Integer;
begin
Result:=2010;
end;
MyText=npumep()
Text 10,10,"!!! "+Str(MyText)+" !!!"
Возможно в stringах обходимости совсем нет и обойти это можно. Но в данный момент мне нужно передать текст.