I have a VB program that calls a Fortran DLL. It worked fine with VS2003/IVF9.0.
Perhaps unwisely, I upgraded to Visual Studio 2005 and IVF9.1.
The program STILL runs fine if I use the old DLL. However, if I recompile the DLL with IVF9.1, and rerun the program, I get the message "AccessViolationException was unhandled" and "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Is this due to incorrect IVF compiler options?
Thanks for any help on this. If it's not a simple solution I can send more program information.
Phil
Perhaps unwisely, I upgraded to Visual Studio 2005 and IVF9.1.
The program STILL runs fine if I use the old DLL. However, if I recompile the DLL with IVF9.1, and rerun the program, I get the message "AccessViolationException was unhandled" and "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Is this due to incorrect IVF compiler options?
Thanks for any help on this. If it's not a simple solution I can send more program information.
Phil
链接已复制
4 回复数
I can't think of anything that changed in the Fortran version. VB is notorious for making incompatible changes across versions.
If you want us to take a look, file an Intel Premier Support request and attach a ZIP of your VS "solution" containing the VB and Fortran projects.
If you want us to take a look, file an Intel Premier Support request and attach a ZIP of your VS "solution" containing the VB and Fortran projects.
There's the "Tech Support" link on the main forum page, as well as information in the documentation and what you were sent when you registered. Start here. Note that you must register for support - it's free.
This turned out to be that the Fortran DLL, which at one time had been a CVF project, no longer had the "CVF" calling option set. Adding the appropriate directives (STDCALL, REFERENCE, MIXED_STR_LEN_ARG) for the DLL routine fixed the problem.
