void CTest_ControlApiDlg::OnGetSn()
{
UpdateData(true);
// UINT Times1;
// Times1=0;
unsigned char pucBuf[8];
memset(pucBuf,0,8);
epsRet=epas_GetProperty(m_hToken,EPAS_PROP_SERNUM,0,pucBuf,sizeof(pucBuf));
if(FT_SUCCESS != epsRet)
{
sprintf(Buf,"GetSn,Error Num=%d",epsRet);
AfxMessageBox(Buf, MB_OK | MB_ICONERROR);
// epsRet = epas_CloseDevice(m_hToken);
// epsRet = epas_DeleteContext(m_hToken);
m_hToken = NULL;
return ;
}
m_1=pucBuf[0];
m_2=pucBuf[1];
m_3=pucBuf[2];
m_4=pucBuf[3];
m_5=pucBuf[4];
m_6=pucBuf[5];
m_7=pucBuf[6];
m_8=pucBuf[7];
UpdateData(false);
}
epas_GetProperty
EPAS_HANDLE hContextHandle, // [in]
unsigned long ulFlags, // [in]
void* pRefData, // [in]
void* pPropData, // [in][out]
unsigned long ulPropSize // [in]
hContextHandle
[in] 指向一个设备句柄的上下文的指针
ulFlags 0x07
pRefData
[in] 为将来扩展保留的。设为零。
pPropData
[in] sn:
ulPropSize
[in] sn长度
我是这样在vb中申明的
Private Declare Function epas_GetProperty Lib "ePassNDapi.dll" (hContextHandle As Long, ulFlags As Long, pRefData As Long, pPropData() As Any, ByVal ulPropSize As Long) As Long
这样申明对吗?该如何调用
去VC++區問, 也許更合適.
继承没法转换。
sizeof可以用len代替。sprintf不知道用什么替换。
数组的指针pucBuf用pucBuf(0)可以传递。
总的来说,这段代码没有转换的意义,因为不是用标准的API函数来做的。
VB的细枝末节我都忘得光了。。。
继承没法转换。
sizeof可以用len代替。sprintf不知道用什么替换。
数组的指针pucBuf用pucBuf(0)可以传递。
总的来说,这段代码没有转换的意义,因为不是用标准的API函数来做的
同意
关注
Private Declare Function epas_GetProperty Lib "ePassNDapi.dll" (ByVal hContextHandle As Long, ByVal ulFlags As Long, ByVal pRefData As Long, pPropData() As Any, ByVal ulPropSize As Long) As Long
Private Sub OnGetSn()
Dim pucBuf(7) As Byte
Const EPAS_PROP_SERNUM = &H7
memset pucBuf, 0, 8
UpdateData (True)
epsRet = epas_GetProperty(m_hToken, EPAS_PROP_SERNUM, 0, pucBuf, Len(pucBuf))
If FT_SUCCESS <> epsRet Then
sprintf(Buf,"GetSn,Error Num=%d",epsRet); 这两句不懂怎么转换
AfxMessageBox(Buf, MB_OK | MB_ICONERROR);
Set m_hToken = Nothing 这个不知是否正确
Exit Sub
End If
m_1 = pucBuf(0)
m_2 = pucBuf(1)
m_3 = pucBuf(2)
m_4 = pucBuf(3)
m_5 = pucBuf(4)
m_6 = pucBuf(5)
m_7 = pucBuf(6)
m_8 = pucBuf(7)
UpdateData(false)
End Sub
水平有限,见谅!