日期:2014-05-17  浏览次数:20785 次

C#调用C++ DLL,怪事

C++ DLL里有一个函数
BOOL MyFun(char *pparter1,char *pparter2);

C#调用时
[DllImport("MyCplusDLL.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern bool MyFun(IntPtr pParter1,IntPtr pParter2);


            IntPtr pParter1 = Marshal.AllocHGlobal(256);
            IntPtr pParter2 = Marshal.AllocHGlobal(256); 
            if(!MyFun(pParter1,pParter2))
             {
             }
  MyFun()直接崩溃,弹出VS调试界面,但点进去后又没有任何信息.
  根本没有进入C++MyFun函数执行一句代码!

  更奇怪在是两台Windows 2003电脑,一台本程序正常运行,一台在上述位置崩溃!

C# C++

------解决方案--------------------
异常提示是什么
------解决方案--------------------
Windows 2003有个数据执行保护,试试关闭它。