Why do I receive a calling convention error when calling a Fortran function from a C S-Function with Simulink?

I have a legacy Fortran function that I am using from Simulink via a S-Function wrapper. When I debug it using Visual Studio, MSVC gives me the following error about calling conventions.
Debug Error!
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

 採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 27 日
The error message indicates that there is a calling convention mismatch.
A workaround is to try placing a __stdcall or __fastcall statement (depending on the compiler) between the "extern type" and the function name in the function prototype in the c-file.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSimulink Coder についてさらに検索

製品

リリース

R2006a

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by