Главная страница
    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.012 c
3-25195
Gamar
2003-12-12 07:28
2004.01.09
Обновить быстро


3-25187
Вольный Стрелок
2003-12-12 11:16
2004.01.09
работа TQuery.OnUpdateRecord


1-25341
rosl
2003-12-25 07:28
2004.01.09
ini


4-25638
npAKTuk
2003-11-07 06:43
2004.01.09
Как совершить перехват Message?


1-25422
Sectey
2003-12-25 17:08
2004.01.09
Открытие frp файла вызывает ошибку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский