![]() |
Написание DLL в Delphi для Blitz3D
Пробую делать Dll для Blitz3D на Delphi 7.
Первые тормоза появились при передачи обработанного текста из DLL-ки в программу Blitz3D. Пишу на Delphi 7 (Pascal) - потому что мне пока здесь удобно. PHP код:
Создал Delphi.decls PHP код:
Создал пример-программу Delphi.bb PHP код:
Возможно где-то пустота или потеря данных :dontknow: А может не совместимость String При попытках где-то добавить или убрать текст$ в скобках, или приписать $ - получается пустой текст.. С Integer всё нормально передаётся. PHP код:
PHP код:
PHP код:
|
Ответ: Написание DLL в Delphi для Blitz3D
PHP код:
Дело в том что делфийский String это щачло карпа которое понимает только Delphi. А везде принято использовать PChar тоесть грубо массив символов. |
Ответ: Написание DLL в Delphi для Blitz3D
И ещё вопрос:
если я к Dll-ке в Цитата:
Нужно ли будет к проекту докладывать Dll-ки от тех утилит? Например Indy. Цитата:
|
Ответ: Написание DLL в Delphi для Blitz3D
Всё что пожелаешь. Можешь к dll ещё Dll приделать если очень хочется.
|
Ответ: Написание DLL в Delphi для Blitz3D
Вложений: 1
Попробуй библиотеку из архива.
Имя функции такое же, т. е. npumep() В скобках функции ничего не передавать! |
Ответ: Написание DLL в Delphi для Blitz3D
"Например Indy"
C Indy дополнитеьных dll с проектом тоскать не нужно будет, но спешу огорчить многие события Indy (сети точно) не будут работать в dll (как минимум мне не удалось заставить их работать). |
Ответ: Написание DLL в Delphi для Blitz3D
Слушайте, а если я в длл для Блица опишу команды создания кнопок(и т.д.), кторые входят в команды Delphi, Блиц будет создавать мне кнопки?
|
Ответ: Написание DLL в Delphi для Blitz3D
Цитата:
|
Ответ: Написание DLL в Delphi для Blitz3D
В функцию ты должен будешь ещё передавать хендл окна.
( SystemProprty("AppHWND") ) И да. TButton тут не прокатит. Тебе нужно будет использовать чистый WinApi. Или создавать отдельное TForm окно, но это уже не интересно. |
Ответ: Написание DLL в Delphi для Blitz3D
Цитата:
|
Ответ: Написание DLL в Delphi для Blitz3D
Мне кажется, если будет установлен Graphics3D то не получится, даже с winapi скорее всего.
В таком случае наверно проще не делфи из под блица, а блиц из под делфи использовать (сдк). |
Ответ: Написание DLL в Delphi для Blitz3D
Проблема передачи данных (а так же текста) из Blitz3D в Delphi 7 и обратно.
Файл Delphi.bb Код:
Graphics3D 800,600,32,2 Код:
library DelphiText; Код:
.lib "DelphiText.dll" ![]() При завершении программы, когда с Blitz3d отправляешь данные на обработку в скобках: Код:
Graphics3D 800,600,32,2 ![]() Основная проблема - Delphi не возвращает принятое, а Blitz3D при отправке данных, после завершении программы, пишет об ошибке. А так же при пробе отправить integer 23423450 после обработке IntToStr()+'текст' - Blitz3D вообще как-то отобразил примерно "101021012 текст" |
Ответ: Написание DLL в Delphi для Blitz3D
Хм.. в общем чем дальше - тем больше проблем с этим будет..
Попробовал Indy, в итоге | Memory access violation | |
Ответ: Написание DLL в Delphi для Blitz3D
Цитата:
|
Ответ: Написание DLL в Delphi для Blitz3D
При изменении на function TextAdd(Text:PChar):PChar; в Blitz3D отображается такое:
![]() Я уже больше склоняюсь к такому пути: делать передачи данных через запись/чтение на файл out*.txt например... Но здесь ошибки будут при задержках записи и чтении И думаю - зачем с этим гемором связался :-D Но для текущего проекта это необходимо Вообще ошибка выходит при отправки данных в скобках, по decls такому Код:
npumep$(site%) : "npumep" Код:
MyText$=npumep(1) delphi.dll Код:
function npumep(x:integer):PChar; |
Часовой пояс GMT +4, время: 00:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot