zoukankan      html  css  js  c++  java
  • pInvokeStackImbalance 调试异常的解决办法

    简单处理办法1:

    在vs2010中 Debug->Exceptions...->Managed Debugging Assistants->PInvokeStackImbalance 的勾选去掉。

    根本处理办法2:

    转自:http://blog.csdn.net/elloop/article/details/7641369

    当用c#调用c++ 写好的dll时,调试过程中出现:pInvokeStackImbalance

    函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。

     

    code:

    c++ dll(my-dll):

    extern "C" __declspec (dllexport)void MyDLLFunc(char * f, int n);
    c# 调用:

     
    1. [DllImport ( "my-dll.dll")]  
    2. public static extern  void MyDLLFunc(char * f, int n);  

    改正方法:

    将[DllImport] 写成:

     
      1. [DllImport ( "my-dll.dll", CallingConvention = CallingConvention.Cdecl )]  
  • 相关阅读:
    每周必写
    每周必写
    每周必写
    感想及阅读内容
    阅读内容及感想
    每周感想和阅读内容
    每周感想及阅读内容
    每周感想及阅读内容
    分答
    每周感想及阅读内容
  • 原文地址:https://www.cnblogs.com/JackieWu/p/5731541.html
Copyright © 2011-2022 走看看