在ActiveX控件中如何动态调用DLL函数
2006-07-21 11:44:18 来源:WEB开发网核心提示: void CPosCtrl::ASCII_TO_BCD(char *cSource, char *cResult, int iSourceLen, int iResultLen){int iBegin,i;iBegin=0;if(iSourceLen%2){iBegin=1;cResult
void CPosCtrl::ASCII_TO_BCD(char *cSource, char *cResult, int iSourceLen, int iResultLen)
{
int iBegin,i;
iBegin=0;
if(iSourceLen%2)
{
iBegin=1;
cResult[0]=cSource[0]-''0'';
}
for (i=iBegin;i<iResultLen;i++)
{
cResult[i]=(cSource[2*i-iBegin]-''0'')*16+cSource[2*i-iBegin+1]-''0'';
}
//deprive off preData
cResult[iResultLen]=''\0'';
}
//----------------------------------------------------------------------------//
// 功能:设置POS机时间函数。
// 输入/输出参数:11-想要设置的时间
// 版本:1.0
// 修改:
//----------------------------------------------------------------------------//
BOOL CPosCtrl::SetPosDateTime(char * pchDateTime)
{
int n=1;
unsigned char cInput[257],cOutput[256];
BYTE byOutput,retVal;
for(int i=0;i<8;i++)
{
(*Pipe_control)(hCom,n); //多路控制
//修改POS机时间
{
if(::MessageBox(NULL,"是否确定修改POS机时间?","提示信息",MB_YESNO)==IDNO)
{
return FALSE;
}
ASCII_TO_BCD(pchDateTime,(char *)cInput,10,5);
retVal = (*Protocol)(hCom,Com_DownDateTime,5,cInput,&byOutput,cOutput);
if (retVal)
{
::MessageBox(NULL,"修改成功!","提示信息",MB_OK | MB_ICONINFORMATION);
}
else
{
::MessageBox(NULL,"修改不成功!","提示信息",MB_OK | MB_ICONINFORMATION);
}
}
n=n<<1 ;
}
(*Protocol)(hCom,0x86,5,cInput,&byOutput,cOutput); //下载成功
(*Dev_escape)(hCom); //关闭多路控制
(*Pipe_control)(hCom,0); //多路控制复位
return TRUE;
}
//----------------------------------------------------------------------------//
// 功能:对外提供的修改时间的接口方法
// 输入/输出参数:11-想要设置的时间
// 版本:1.0
// 修改:
//----------------------------------------------------------------------------//
更多精彩
赞助商链接