C#代码中的FatalExecutionEngineError

时间:2016-01-11 10:04:35

标签: c#

我正在使用指纹设备,我正在使用C#包装器捕获指纹。在我捕获指纹之前,我需要使用设备的API初始化设备。设备初始化API和设置模式API第一次成功执行,我能够捕获指纹。在第二次迭代中,我没有初始化设备,因为它已经初始化,我再次使用不同的参数调用set mode API。我认为这个API会在返回OK状态时成功执行。如果我在调用此API后尝试执行任何C#语句,则会导致FatalExecutionEngineError,如下所示:

nRc = APIWrapper.CG4_M_Capture_SetMode(
                                m_nDeviceId,
                                imageType,
                                m_ImgResolution,
                                m_bAutoCapture,
                                m_bAutoContrast,
                                &m_nFullImgWidth,
                                &m_nFullImgHeight,
                                &m_nBaseRslnX,
                                &m_nBaseRslnY
                                );

if(nRc != 0)      <<<<<<<<<<<<<--------- (FatalExecutionEngineError)

LogError(nRc);
  

错误:运行时遇到致命错误。错误的地址位于线程0x13d0处的0x6c96eb22处。错误代码是0xc0000005。此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。

nRc varaible包含CG4_STATUS_OK,表示API已成功执行。我交叉检查传递给这个API的参数,并正确传递它们。传递给此API的参数也与程序员手册一致。我不确定如何进一步分析这个问题。能不能让我知道我可以做些什么来调试这个问题,因为我是C#环境的新手。

0 个答案:

没有答案