请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配 [DllImport("gdi32.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int SetPixel(IntPtr hdc, int x, int y,int color);
对 PInvoke 函数“c sharp计算机图形学!c_sharp计算机图形学.Form1::SetPixel”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
这是怎麽回事 就剩这一个问题了 急!!!!!
------解决方案-------------------- [DllImport("gdi32.dll")]
static extern uint SetPixel(IntPtr hdc, int X, int Y, uint crColor);
就可以了
[DllImport("gdi32.dll", CallingConvention = CallingConvention.Cdecl)]
这个不对,所有的API都是StdCall的。 ------解决方案-------------------- 这是标准的win32api,对于这样的api里可以去下一个工具查询 api explorer