悲剧一枚,鄙人一菜,愚痴一问,有此一过程 for(int n = 0;n<1000;n++)
{
CString str = "sadfasdfasdfadfasdfasdfasdfasdfasdfasdfasdfasdfasdfffffffffffffffffasdfasdfasdfasd";
if(m_zkfp.SaveTemplate("c:\\fingerprint.tpl", m_zkfp.DecodeTemplate1(str)))
{
这个没有出来,但是c:\\fingerprint.tpl是空的--> AfxMessageBox("!");
}
}
调试见入
if (sc == S_OK)
{
TRY
{
// PushStackArgs will fail on argument mismatches
DWORD (AFXAPI *pfnDispatch)(AFX_PMSG, void*, UINT) =
&_AfxDispatchCall;
// floating point return values are a special case
switch (vtResult)
{
case VT_R4:
result.fltVal = ((float (AFXAPI*)(AFX_PMSG, void*, UINT))
pfnDispatch)(pfn, pStack, nSizeArgs);
break;
case VT_R8:
result.dblVal = ((double (AFXAPI*)(AFX_PMSG, void*, UINT))
pfnDispatch)(pfn, pStack, nSizeArgs);
break;
case VT_DATE:
result.dblVal = ((DATE (AFXAPI*)(AFX_PMSG, void*, UINT))
pfnDispatch)(pfn, pStack, nSizeArgs);
break; default:
dwResult = pfnDispatch(pfn, pStack, nSizeArgs);
break;
}
}
停在这里了!-> CATCH_ALL(e)//
{
// free temporaries created by VariantChangeType
for (UINT iArg = 0; iArg < pDispParams->cArgs; ++iArg)
VariantClear(&rgTempVars[iArg]); THROW_LAST();
}
END_CATCH_ALL
}
函数说明……BOOL CZKFPEngX::SaveTemplate(LPCTSTR FileName, const VARIANT& ATemplate)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR VTS_VARIANT;
InvokeHelper(0x12, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
FileName, &ATemplate);
return result;
}
VARIANT CZKFPEngX::DecodeTemplate1(LPCTSTR ASour)
{
VARIANT result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
ASour);
return result;
}
跪谢有心人