相关疑难解决方法(0)

对PInvoke函数'[...]'的调用使堆栈失衡

对于我已经使用了很长一段时间的一些东西,我得到了这个奇怪的错误.它可能是Visual Studio 2010中的新东西,但我不确定.
我试图用C#调用用C++编写的无人函数.
从我在互联网上阅读的内容和错误信息本身来看,这与我的C#文件中的签名与C++中的签名不同但我真的看不到它这一事实有关.
首先,这是我在下面的无人函数:

TEngine GCreateEngine(int width,int height,int depth,int deviceType);
Run Code Online (Sandbox Code Playgroud)

这是我在C#中的功能:

[DllImport("Engine.dll", EntryPoint = "GCreateEngine", CallingConvention = CallingConvention.StdCall)]  
        public static extern IntPtr CreateEngine(int width,int height,int depth,int device);
Run Code Online (Sandbox Code Playgroud)

当我调试到C++时,我看到所有的参数都很好,因此我只能认为它与从TEngine(这是一个名为CEngine的类的指针)转换为IntPtr有关.我之前在VS2008中使用过这个没问题.

c# c++ pinvoke unmanaged managed

45
推荐指数
4
解决办法
4万
查看次数

标签 统计

c# ×1

c++ ×1

managed ×1

pinvoke ×1

unmanaged ×1