社区
ATL
帖子详情
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得到的是乱码啊!
...全文
110
15
打赏
收藏
vb调用vc ActiveX问题?
vc的activex中定义属性CString strRecv; vb中定义dim a(2) as byte a(0)=&HEE a(1)=&HFF 调用.strRecv=a 我的程序就是需要将vb中传入的byte数组在activex中处理 怎么转换呢? Cstring strRecv得到的是乱码啊!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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);
不注册
调用
ActiveX
Dll
本文介绍如何在
VB
中不通过注册表直接
调用
ActiveX
Dll,通过DllGetClassObject函数获取IClassFactory,然后创建所需COM对象。提供
VB
代码示例和
VC
动态链接库解决函数指针
问题
。
在
vc
中
调用
vb
的dll文件
本文介绍了如何在
VB
和
VC
中
调用
由
VB
编写的
ActiveX
组件BioxSend.Test。在
VB
中,可以通过直接引用DLL或定义为Object类型进行
调用
。而在
VC
中,由于
VB
生成的组件非标准COM,需通过CoCreateInstance或智能指针方法,并注意接口名称为_Test。文章提供了详细的
调用
步骤和代码示例。
VC
怎么
调用
ActiveX
在64位Windows系统中,32位OCX或DLL应放在c:windowssyswow64目录下,并使用该目录下的regsvr32进行注册。设置32位程序的数据库别名和DSN也需要相应64位版本的工具。VS中插入
ActiveX
控件需确保其已注册。
在
vb
,
vc
中
调用
vb
编写的DLL
本文介绍如何在Visual Basic和Visual C++中
调用
一个名为BioxSend的
ActiveX
组件,该组件包含一个名为Test的类及其实现的方法Hello()。文章详细描述了两种在
VB
中的
调用
方式,以及在
VC
中通过CoCreateInstance和智能指针进行
调用
的过程。
如何使用
VC
创建一个
ActiveX
控件,并使其可以被
VB
使用
本文介绍了一个使用
VC
创建MFC
ActiveX
控件,并在
VB
中使用的实例。具体步骤包括:1. 在
VC
中创建MFC
ActiveX
Control Wizard项目;2. 添加属性和方法;3. 编译生成OCX文件;4. 在
VB
工程中加载并使用该控件。
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章