Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.013 c
1-25330
bon
2003-12-25 15:28
2004.01.09
DeskTop


3-25200
Stinger
2003-12-11 22:35
2004.01.09
курсоры Oracle


1-25304
SoS
2003-12-22 18:35
2004.01.09
А где взять TSpinEdit ?


1-25359
CashDi
2003-12-25 14:00
2004.01.09
Документирование кода


4-25673
DriveSoft
2003-11-06 21:59
2004.01.09
Dial-Up диалог





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский