描述:
我用VC6,MFC写一个ACTIVEX控件,有一件事想请教一下各位。
内部有一个类
BOOL bb=m_TE.SendCom(LPCTSTR, LPSTR);
向串口发一个命令,返回的内容就放在LPSTR中,
我现在要把这个封装成了下方法。并且要是delphi中调用,怎么写呀。
我用了很多方法,都不行。
[id(11)] boolean SendATCmd(BSTR lpCommand, VARIANT* lpRet);
[id(11)] boolean SendATCmd(BSTR lpCommand, BSTR* lpRet);
[id(11)] boolean SendATCmd(BSTR lpCommand, BSTR lpRet);
都不行的,在delphi中调用如下:
var
aa: widestring;
begin
SetString(aa, nil, 500);
if SmsOcx1.SendATCmd(Edit1.Text, aa) then
mmo1.Lines.Add(aa);
返回中,没有把aa中的内容修改,还是分配内存的内容。
请问这儿怎么写呀,谢谢各位??????
解决方案1:
没弄过.顶一下吧
解决方案2:没弄过,帮你UP一下吧
解决方案3:[id(11)] HRESULT SendATCmd([in]BSTR lpCommand, [out]BSTR* lpRet);
解决方案4: 试试
boolean SendATCmd(BSTR lpCommand, BSTR* lpRet)
{
char ret[1024]={0};
m_TE.SmsSendATCom((LPSTR)lpCommand, ret);
_bstr_t bstret=ret;
*lpRet=bstret.copy();
return true;
}
帮顶