我正在使用指纹设备,我正在使用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#环境的新手。