.cpp中内容
HRESULT Cactive1Ctrl::ReadCard(BSTR* pstr)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 int res = 0;
unsigned char lens;
unsigned char lenr1;
unsigned char comm1[10];
unsigned char resp1[40];
unsigned char m_temp[100];
CString m_ReturnStr;
char cErr[10]={0}; memcpy(comm1,"\x00\x12\x00\x00\x00",5);
lens=5; res=ICC_tsi_api(hDevice,lens,comm1,&lenr1,resp1);
if(res!=0x9000)
{
_itoa(res,cErr,16);
m_ReturnStr=(CString)cErr;
}
else
{
BinToCHex(m_temp,resp1,lenr1);//| 返回值:十六进制字符串的指针
m_ReturnStr=(CString)m_temp;
}
*pstr = m_ReturnStr.AllocSysString();
return S_OK;
}JS中代码function test3()
{
var res = Test.ReadCard();
alert(res);
}
还有一个问题 我用的vs2008 在添加自定义方法时为什么添加参数的时候没有in和out复选框。
请各位帮帮忙。
HRESULT Cactive1Ctrl::ReadCard(BSTR* pstr)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 int res = 0;
unsigned char lens;
unsigned char lenr1;
unsigned char comm1[10];
unsigned char resp1[40];
unsigned char m_temp[100];
CString m_ReturnStr;
char cErr[10]={0}; memcpy(comm1,"\x00\x12\x00\x00\x00",5);
lens=5; res=ICC_tsi_api(hDevice,lens,comm1,&lenr1,resp1);
if(res!=0x9000)
{
_itoa(res,cErr,16);
m_ReturnStr=(CString)cErr;
}
else
{
BinToCHex(m_temp,resp1,lenr1);//| 返回值:十六进制字符串的指针
m_ReturnStr=(CString)m_temp;
}
*pstr = m_ReturnStr.AllocSysString();
return S_OK;
}JS中代码function test3()
{
var res = Test.ReadCard();
alert(res);
}
还有一个问题 我用的vs2008 在添加自定义方法时为什么添加参数的时候没有in和out复选框。
请各位帮帮忙。
[id(3), helpstring("方法ReadCard")] HRESULT ReadCard([out,retval]BSTR* pstr);
还有就是不要用m_ReturnStr=(CString)cErr;进行CString和char的强制转换,因为这里的CString有可能是wchar_t类型vs2008 在添加自定义方法时有in和out复选框的,是一个个添加的
移除:点击下一步之后也没看见in和out的复选框。