vb调用vc ActiveX问题?

wml231 2009-08-11 02:52:22
vc的activex中定义属性CString strRecv;
vb中定义dim a(2) as byte
a(0)=&HEE
a(1)=&HFF
调用.strRecv=a
我的程序就是需要将vb中传入的byte数组在activex中处理
怎么转换呢?
Cstring strRecv得到的是乱码啊!
...全文
70 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wml231 2009-08-12
  • 打赏
  • 举报
回复
谢谢楼上指点,能具体点吗
小弟初学ActiveX,对类型转换不太清楚!
skybblue 2009-08-12
  • 打赏
  • 举报
回复
com中用VARIANT类型传递数组吧,在vb中所有的变量形式其实都是VARIANT类型的变量,如果传递数组的话,在Com中应该使用安全数组(CreateSafeArray创建安全数组)方式实现.
wml231 2009-08-12
  • 打赏
  • 举报
回复
谢谢楼上的支持,可能是我没写清楚
我要的效果是
vb中定义:
dim a(n) as byte //n可能是不同的数字
a(0)=&H11
a(1)=&HB2
...
a(n)=&H1F
这个数组是可变的
然后在vc的activex中,我定义了一个属性Recv为CString型//我不知道还能用什么类型直接接收vb的byte数组
最后在vb中调用vc的activex属性
.strRecv = a
要求vc的activex中Recv属性收到这个数组后能够转换出来,即得到vb中的数组原数据

我用传递地址的方法已经实现了
但是效果不好,我想还是.strRecv = a这样比较方便
请高手指教
Ghost90 2009-08-11
  • 打赏
  • 举报
回复
a(0)=&H66
strRecv=a
又试了下 这样 应该没问题

这么试下呢 只付a(0) 值H66 你的ee不是字符 ASCII码
wml231 2009-08-11
  • 打赏
  • 举报
回复
.strRecv=a是在vb里,别的方法我已经实现了,但是,我就想用这种方法,因为以前实现过
忘了怎么作了,这样实现以后,vb中调用比较方便,多谢啊!
Ghost90 2009-08-11
  • 打赏
  • 举报
回复
错了应该是

F(char *p)
{
strRecv.Format("%s",p);

}
Ghost90 2009-08-11
  • 打赏
  • 举报
回复
调用.strRecv=a 是在VB里的代码吗?如果是VB里的代码不建议这样用,因为CString 是个类不是char * 如果是char*的话可能正确。调用.strRecv.Format("%s",a); 的意思是在VB里试估计不能成功。
还是用函数的方式F(char *p)
{
strRecv=p;

}
这样的话应该不会有问题
wml231 2009-08-11
  • 打赏
  • 举报
回复
虽然不行还是谢谢楼上!

你的方法中的a是我activex收到的,此时已经是乱码了
因为strRecv是cString 型,就是因为类型转换错误造成的
我就是想知道怎么转换呢>?
Ghost90 2009-08-11
  • 打赏
  • 举报
回复
调用.strRecv.Format("%s",a);
这么试试呢?感觉好像不行
wml231 2009-08-11
  • 打赏
  • 举报
回复
没人知道?
wml231 2009-08-11
  • 打赏
  • 举报
回复
d
wml231 2009-08-11
  • 打赏
  • 举报
回复
本人初学activex,1楼的方法我有点不懂,a 是在vb中定义的,怎么会在vc中能得到呢?
3楼说的方法我在网内查了很多了,能具体点吗,因为我不知道activex定义属性时类型怎么设置成char*
谢谢!!!
FirryHere 2009-08-11
  • 打赏
  • 举报
回复
一般在ole中的字符串,都是bstr,atl中有ccombstr和cstring,不过,最好不要用这个来传byte字节流,还不如直接用char*什么的方式。
wml231 2009-08-11
  • 打赏
  • 举报
回复
在线,答者给分!
Ghost90 2009-08-11
  • 打赏
  • 举报
回复
strRecv.Format("%s",a);

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧