Re: Fortran and C++
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 25.05.02 13:46
Оценка:
Здравствуйте Nondefine, Вы писали:

N>Есть такая проблема. В фортрановском файлике определена функция:

N>INTEGER*4 function my()
...
N>Потом ее нужно вызвать из сишного:
N>extern int __stdcall my();

N>В результате при линковке всего этого дела в VC 6.0 с встроенным Compac Visual Fortran 6.1 получаю unresolved external _my.


N>Как с этим бороться?

Ответа я не знаю. Сразу говорю. Но можно попытаться.

Возможно, дело в декорировании имен. Либо в несоответствии соглашений о вызовах. В первом случае ни в одном из прилинкованных obj-файлов не будет найдена функция, требуемая С-шным компилятором. (можно поискать любым текстовым редактором соответствие)

Можно попытаться посмотреть (в map-файле), во что преобразуется имя my. Возможно, поможет вставка "C" между extern и int:
extern "C" int __stdcall my();


Возможно, что и не поможет. Если точно не известно, что фортранные функции имеют соглашение о вызовах __stdcall, то можно попробовать __cdecl.
Алексей Кирдин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.