我收到了Matlab Compiled .dll(针对32位(x86)系统)。我使用带有Windows 7的64位系统。我正在使用Visual Studio IDE来创建我的应用程序并导入此.dll。以下是代码。
[DllImport("Generate_Curve.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Generate_Curve", CharSet = CharSet.Ansi)]
我看到了类似的问题.net Framework Error (HRESULT 0x8007000B),因此我尝试将平台目标更改为x86
或Any CPU
以及Prefer 32-bit
。仍有一个错误抛出An unhandled exception of type 'System.BadImageFormatException
,附加信息为An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
。任何人都可以指出我错过的东西。
答案 0 :(得分:0)
我收到了Matlab(Mathworks)的回答,Matlab编译器中存在一个错误。如果用Matlab编码器中的64位Matlab编译target machine or application of 32 bit
,则生成的.dll很可能被破坏。解决方案是使用32位Matlab(Matlab Coder)为32位目标机器/应用程序编译dll。这个问题更多的是Matlab Coder问题。