我有一个调用 x64 位 C++ DLL 的 x64 位托管项目。这在 Visual Studio 2010 中运行良好。但是,如果我将 C++ 项目升级到 Visual Studio 2012,我将无法再调用 x64 位 DLL,并且收到错误消息
试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)
这个项目在 Visual Studio 2010 中运行良好。如果我不允许 Visual Studio 将项目升级到 Visual Studio 2012 并在 Visual Studio 2010 中编译和链接 C++ DLL,那么一切都很好。
我的问题是发生了什么改变来破坏这段代码。我假设某些通用类型已更改,这将需要我进行更改。第一个中断的函数签名是:
升 C 的签名是:
internal static extern int ReverseBottomToTop(IntPtr imgptr, int nrows, int ncols)
C++ 中的签名是:
int ReverseBottomToTop(unsigned char *imgptr, int nrows, int ncols)