Simulink Sfunction Error - not a valid Win32 application
16 次查看(过去 30 天)
显示 更早的评论
Since I have installed a Windows update I am getting the following error: Error calling generated SFunction, XXXX_sfun. Invalid MEX-file 'H:\MATLAB\XXXX_sfun.mexw64': H:\MATLAB\XXXX_CTD_sfun.mexw64 is not a valid Win32 application.
If I remove one of the SFunctions from the model I no longer get the error. If I put that SFunction back into the model and remove a different SFunction from the model I no longer get the error.
There are no global variables.
The model worked before the Windows update. I have changed some formulas in the functions but nothing too significant. Running the Matlab code associated with the SFunctions by itself works fine, so I don't think it is a coding bug.
Not sure where to go from here.
0 个评论
回答(2 个)
Madhura Suresh
2014-6-17
It is possible that the bitness of the S function and MATLAB or some of the modules have a bitness mismatch. Is it possible that the S function module is 32 bit, and everything else might be 64 bit? You can check the bitness of MATLAB by using
>> mexext
Kaustubha Govind
2014-6-17
My guess is that your update either wiped out your system PATH environment variable or uninstalled your Visual C++ redistributables (these are runtime libraries that binaries compiled with Visual Studio depend on). I would recommend trying to reinstall the Visual C++ redistributables corresponding to the version of Visual Studio that you used to compiled the MEX-files. You should be able to find them from Microsoft's Download Center.
If that doesn't help, you can use Dependency Walker to figure out if you are missing any other dependencies.
4 个评论
Abdulla Hammad
2016-8-5
Dependency Walker was a very useful tip. I discovered I am using a Win32 bit version of the DLL instead of 64bit.
Thank you Kaustubha Govind, Abdulla
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 C Shared Library Integration 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!