Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
1-25303
Oleg__
2003-12-22 20:03
2004.01.09
Панели


6-25462
RoLeX
2003-11-09 18:20
2004.01.09
Как узнать подключен ли комп к инету???


4-25663
Davinchi
2003-11-05 16:25
2004.01.09
Кнопки управления окном (свернуть,развернуть,закрвть) у MDIChild


8-25457
Raper
2003-09-05 10:02
2004.01.09
Подскажите как проиграть mp3 и в нужный момент остановить его..


1-25412
del_programmer
2003-12-24 14:59
2004.01.09
skin