Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизFortran -> Delphi Найти похожие ветки
← →
REA (2003-12-22 14:18) [0]Соответствует ли тип Fortran logical*2 типу WordBool Delphi и, если нет, то чему он соответствует?
← →
Digitman (2003-12-22 14:30) [1]с трудом вспоминаю Фортран, но, кажется, собственно к типу относится только LOGICAL, а * 2 - это уже не тип, а оператор, относящийся к конкр.типу
у тебя какие проблемы-то ? сопряжение Фортран-вызова с Делфи DLL ?
← →
REA (2003-12-22 14:32) [2]Угу. Описано так: logical*2 ikl(4), real*4 ckar(2,4)
real*4 это видимо Single. Массивы там задом наперед.
← →
Digitman (2003-12-22 14:34) [3]
> Описано так: logical*2 ikl(4), real*4 ckar(2,4)
а где описано ? это что, лок.переменные или что ?
← →
KSergey (2003-12-22 14:35) [4]Подозреваю, что logical*2 - это двухбайтное целое. Т.е. вроде как WordBool - самое то.
← →
REA (2003-12-22 14:37) [5]Ну в доке на DLL - видимо выдрано из кода.
2KSergey Thanx.
← →
Digitman (2003-12-22 14:41) [6]можно ж проверить ...
1. соглашение известно - stdcall
2. передача параметров идет ТОЛЬКО по ссылке
заполняем лок.переменные какими-то значениями, вызываем DLL-ф-цию, "ловим" брейкпойнт на точке входа и смотрим, что там творится в участках памяти, на которые указывают параметры, переданные в стеке ...
← →
Anatoly Podgoretsky (2003-12-22 14:45) [7]REA © (22.12.03 14:18)
Это означает, что данная логическая переменная имеет разрядность в два байта, а соответствует или нет, вероятно соответствует, но может не полностью.
← →
REA (2003-12-22 15:14) [8]В DLL breakpoint не поставить. На выходе что-то творится. Остальные результаты вроде правильные, так что будем надеяться, что и с этим угадал.
← →
Digitman (2003-12-22 15:20) [9]
> В DLL breakpoint не поставить
как это так ? не верю
← →
REA (2003-12-22 15:32) [10]Ну нет у меня исходного кода DLL - только она сама и описание вызова.
← →
Digitman (2003-12-22 15:36) [11]
> REA
декомпилить - никак ?
← →
REA (2003-12-22 15:40) [12]Не думаю. Можно наверно каким-нибудь низкоуровневым отладчиком пройтись, но тоже надо понимать чего добиваться.
Сейчас вроде работает, но память портит. Еще посмотрю.
← →
REA (2003-12-22 16:36) [13]При внимательном изучении оказалось, что тип описан просто как logical, но программа не рушится только, если в Delphi описать тип как LongBool. Может в Fortran есть какое-то умолчание насчет типов - например logical 4 байта? Верится с трудом.
← →
Anatoly Podgoretsky (2003-12-22 16:39) [14]Не умолчания, а спецификации языка, logical как раз 4 байта
← →
REA (2003-12-22 16:42) [15]Thanx
← →
REA (2003-12-22 16:43) [16]PS: Им памяти не жалко что ли? Отводили бы уж сразу килобайт.
← →
KSergey (2003-12-22 18:55) [17]Еще не известно байт или 4 процессор быстрее обработает ;)
← →
Юрий Зотов (2003-12-22 19:00) [18]> KSergey © (22.12.03 18:55) [17]
Известно. 4 - быстрее.
← →
REA (2003-12-23 10:14) [19]Смотря какой процессор видимо... Скоро будут ужасно быстрые процессоры с обработкой логических типов в 512 байт...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c