c#调用c++dll报出System.ExecutionEngineException异常

分类:.Net知识问答| 发布:camnprbubuol| 查看: | 发表时间:2011/4/12

执行引擎错误是致命错误,决不应该发生。此类错误主要是在执行引擎被破坏或丢失数据时发生的。系统会随时引发此异常。在可能的情况下,系统将引发比 ExecutionEngineException 异常能提供更多信息的异常。
应用程序不应引发 ExecutionEngineException。
ExecutionEngineException 使用值为 0x80131506 的 HRESULT COR_E_EXECUTIONENGINE。
有关 ExecutionEngineException 实例的初始属性值列表,请参见 ExecutionEngineException 构造函数。
解决方法
public static extern void callCamnprDLL(out byte[] ver);
改成
public static extern void callCamnprDLL(byte[] ver);
试试看
疑问
原本:callCamnprDLL(out byte[] ver); ver 这个参数是要传入地址的,用引用类型符 ref / out
因为c++ dll定义是这样的:
POI_API
long callCamnprDLL(UUID2& ver);
&是取地址,*是传送指针。 原意是,ver是函数返回的out出来的值,我不需要传值的,只定义一个地址变量。这个比较郁闷。。。布布在线
Microsoft .NET Framework 1.1 Service Pack 1 for Windows Server 2003

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/net-wiki/258.html