Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29249 Обсуждение

Local Fortran variable changes mid process while calling C# DLL

MatchID_Ash
Начинающий
1 740Просмотр.

I have a C# dll which contains APIs to communicate with our company apps. I have created an additional static library in C++ CLI to consume these APIs through languages like native C++ and Fortran. The library works well with native C++ and most times with Fortran. However, some values change randomly over time in the Fortran code while running.  The values being exchanged are validated to be correct. The problem is with local Fortran variables. They change over course of execution.

0 баллов
1 Решение
jimdempseyatthecove
Почетный участник III
1 687Просмотр.

Try: __declspec(dllexport) extern "C" double GetValue(...

Jim Dempsey

Просмотреть решение в исходном сообщении

3 Ответы
jimdempseyatthecove
Почетный участник III
1 688Просмотр.

Try: __declspec(dllexport) extern "C" double GetValue(...

Jim Dempsey

jimdempseyatthecove
Почетный участник III
1 685Просмотр.

Also, Fortran does not support Structured Exception Handling. Thus the Fortran->C++ wrapper function should be compiled without SEH (though it can use SEH features).

Jim Dempsey

MatchID_Ash
Начинающий
1 620Просмотр.

Thank you Jim. The calling convention was the issue as you pointed out.

Ответить