COMオブジェクトから返される値を取得しようとしています。関数は次のとおりです。
bool AxSB100BPC.GetEnrollData(int dwMachineNumber,
int dwEnrollNumber,
int dwEMachineNumber,
int dwBackupNumber,
ref int dwMachinePrivilege,
ref object dwEnrollData,
ref int dwPassWord
この関数を次のように呼び出しています。
vRet = axSB100BPC1.GetEnrollData(mMachineNumber,
vEnrollNumber,
vEMachineNumber,
vFingerNumber,
ref vPrivilege,
ref oglngEnrollData,
ref glngEnrollPData);
問題は、oglngEnrollData
どちらがのタイプであるかref object
です。として宣言されobject oglngEnrollData;
ます。
エラーは次のとおりです。
System.Runtime.InteropServices.COMExceptionが処理されませんでした HResult =-2147352571 メッセージ=Türuyuşmazlığı。(HRESULTからの例外:0x80020005(DISP_E_TYPEMISMATCH)) Source = mscorlib ErrorCode = -2147352571 スタックトレース: System.RuntimeType.ForwardCallToInvokeMember(String memberName、BindingFlags flags、Object target、Int32 [] aWrapperTypes、MessageData&msgData)で SB100BPCLib._DSB100BPC.GetEnrollData(Int32 dwMachineNumber、Int32 dwEnrollNumber、Int32 dwEMachineNumber、Int32 dwBackupNumber、Int32&dwMachinePrivilege、Object&dwEnrollData、Int32&dwPassWord) AxSB100BPCLib.AxSB100BPC.GetEnrollData(Int32 dwMachineNumber、Int32 dwEnrollNumber、Int32 dwEMachineNumber、Int32 dwBackupNumber、Int32&dwMachinePrivilege、Object&dwEnrollData、Int32&dwPassWord) enrolldata.Form1.button2_Click(Object sender、EventArgs e)in f:\ enrolldata \ Form1.cs:line 196 System.Windows.Forms.Control.OnClick(EventArgs e)で System.Windows.Forms.Button.OnClick(EventArgs e)で System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)で System.Windows.Forms.Control.WmMouseUp(Message&m、MouseButtonsボタン、Int32クリック) System.Windows.Forms.Control.WndProc(Message&m)で System.Windows.Forms.ButtonBase.WndProc(Message&m)で System.Windows.Forms.Button.WndProc(Message&m)で System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)で System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)で System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd、Int32 msg、IntPtr wparam、IntPtr lparam)で System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&msg)で System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID、Int32 reason、Int32 pvLoopData)で System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason、ApplicationContext context)で System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32理由、ApplicationContextコンテキスト)で System.Windows.Forms.Application.Run(Form mainForm)で f:\ enrolldata \ Program.cs:line 19のenrolldata.Program.Main()で System.AppDomain._nExecuteAssembly(RuntimeAssemblyアセンブリ、String [] args)で System.AppDomain.ExecuteAssembly(String assemblyFile、Evidence assemblySecurity、String [] args)で Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()で System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態)で System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で System.Threading.ExecutionContext.Run(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態)で System.Threading.ThreadHelper.ThreadStart()で InnerException:
どんなアイデアでも大歓迎です