出现错误:引发类型为“System.ExecutionEngineException”的异常
cynkx 2007-11-16 08:08:30 我用Twain获取扫描仪的设置,调用dll如下:
[DllImport("twain_32.dll", EntryPoint = "#1")]
private static extern TwRC DScap([In, Out] TwIdentity origin, [In] TwIdentity dest, TwDG dg, TwDAT dat, TwMSG msg, [In, Out]TwCapability capa)
其中:TwCapability定义为
internal class TwCapability
{ // TW_CAPABILITY
public TwCapability( TwCap cap )
{
Cap = (short) cap;
ConType = -1;
Handle = IntPtr.Zero;
}
public TwCapability( TwCap cap, short sval )
{
Cap = (short) cap;
ConType = (short) TwOn.One;
Handle = Twain.GlobalAlloc( 0x42, 6 );
IntPtr pv = Twain.GlobalLock( Handle );
Marshal.WriteInt16( pv, 0, (short) TwType.Int16 );
Marshal.WriteInt32( pv, 2, (int) sval );
Twain.GlobalUnlock( Handle );
}
~TwCapability()
{
if( Handle != IntPtr.Zero )
Twain.GlobalFree( Handle );
}
public short Cap;
public short ConType;
public IntPtr Handle;
}
操作:
TwCapability capXResolution = new TwCapability(TwCap.IXResolution); //取得X轴的分辨率
rc = DScap(appid, srcds, TwDG.Control, TwDAT.Capability, TwMSG.Get, capXResolution);
//取出capXResolution中的值
pContain = GlobalLock(capXResolution.Handle);
Marshal.PtrToStructure(pContain, twrange);
———这里出现错误:引发类型为“System.ExecutionEngineException”的异常
在错误语句处还有一句话:此代码调用了另一个函数。当该函数完成后,这是将要执行的下一语句。
请问怎么解决呢?麻烦帮帮忙啊