社区
进程/线程/DLL
帖子详情
vc怎么调用vb的dll啊?
d52787790
2010-06-30 05:03:47
是非ActiveX的,和普通的vc的dll一样调用。
只给了我 : vb_dll。
给了我个接口: Public Function Send(ByVal str1 As String, ByVal str2 As String, Optional ByVal str3 As String = "") As Boolean
这个怎么动态调用啊?类型怎么匹配。
在网上找的资料都是,调用vb的com,或者就是vb调用vc的dll,很少有vc调用vb的dll。求大侠帮忙
...全文
285
24
打赏
收藏
vc怎么调用vb的dll啊?
是非ActiveX的,和普通的vc的dll一样调用。 只给了我 : vb_dll。 给了我个接口: Public Function Send(ByVal str1 As String, ByVal str2 As String, Optional ByVal str3 As String = "") As Boolean 这个怎么动态调用啊?类型怎么匹配。 在网上找的资料都是,调用vb的com,或者就是vb调用vc的dll,很少有vc调用vb的dll。求大侠帮忙
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
www5r2
2010-07-05
打赏
举报
回复
嗷嗷叫的老马
2010-07-01
打赏
举报
回复
[Quote=引用 13 楼 d52787790 的回复:]
depend 查看不到吗?我看了下导出函数是空的
[/Quote]
那这个DLL就有点怪了.
没有导出函数,那就不对劲.
如果可以的话把DLL发来研究研究看看?
myjian01####yahoo.com.cn
magic7004
2010-07-01
打赏
举报
回复
楼主用dependency.exe看下Export就OK了
magic7004
2010-07-01
打赏
举报
回复
1.那个函数貌似VC里应该是 short int Send(BSTR str1,BSTR str2,BSTR str3);
2.GetProcAddress找不到函数的话,说明函数的名字不对或者函数名没有导出。
嗷嗷叫的老马
2010-07-01
打赏
举报
回复
关键要看那个DLL如何做的.
VB6生成的DLL,官方只有ActiveX DLL一种方案
经过编译过程的改造,可以生成带导出函数的DLL,但看起来你手里的这个DLL和这两种都不尽相同.
d52787790
2010-07-01
打赏
举报
回复
我用ildasm 工具看了下,找到了函数原型
.method public instance bool Send(string str1,
string str2,
[opt] string str3) cil managed
我换成string也不行,找不到函数地址,难道vb只能做成com吗?
d52787790
2010-07-01
打赏
举报
回复
depend 查看不到吗?我看了下导出函数是空的
d52787790
2010-07-01
打赏
举报
回复
[Quote=引用 7 楼 tr0j4n 的回复:]
你确定那个VB写的DLL不是ActiveX的?
[/Quote]
确定,不用注册的。
回复9楼
typedef bool (*lpNetTraffic)(char *str1,char* str2,char* str3);
GetProcAddress获取不到函数地址,返回值一直是空的,不知道类型该怎么匹配。
d52787790
2010-07-01
打赏
举报
回复
看来想像vc那样掉是不可能了
这段时间有个项目是需要使用vc++的程序访问.Net的类,在网上搜过很多文章,大致有两个方法:
将.Net程序编译成COM,并让C++代码访问COM组件进行调用。
另一个方法使用CRL编译选项,让.Net代码在CRL(公共运行语言)中管理,这样c++就可以方便的引用.Net的对象。
C++是属于非托管类,而.Net是属于托管类。在运行库的控制下执行的代码称作托管代码,相反,在运行库之外运行的代码称作非托管代码。COM 组件、ActiveX 接口和 Win32 API 函数都是非托管代码的示例。而.Net则属于托管类。微软的产品中这些不同的代码之间都是可以交互的,接下来我将结合实例讲解,此篇文章讲述第二种方式,使用CRL。对于COM的方式稍麻烦一点,如果有兴趣可以查看一下MSDN,地址是:
http://usiboy.javaeye.com/blog/558975
http://blog.csdn.net/suoxd123/archive/2010/01/08/5157668.aspx
http://edu.codepub.com/2010/0326/21371.php
d52787790
2010-07-01
打赏
举报
回复
[Quote=引用 19 楼 magic7004 的回复:]
有两个可能
1.写DLL的人忘记导出了
2.写DLL的人故意不导出,这样只能用[DLL基地址+编译地址]来调用这个函数了,除了知情人士以外,其他人都用不了
[/Quote]
有导出啊,是public的
antoniox
2010-07-01
打赏
举报
回复
为什么不用VC写DLL文件?VC写的应该更兼容。
magic7004
2010-07-01
打赏
举报
回复
有两个可能
1.写DLL的人忘记导出了
2.写DLL的人故意不导出,这样只能用[DLL基地址+编译地址]来调用这个函数了,除了知情人士以外,其他人都用不了
MoXiaoRab
2010-07-01
打赏
举报
回复
Depends看下,有导出函数没
嗷嗷叫的老马
2010-06-30
打赏
举报
回复
跟调用API一样调用呗.
既然那样写了,这个DLL就是经过改造的DLL,不是ActiveX DLL.
jianuMan
2010-06-30
打赏
举报
回复
LoadLibrary
定义调用格式 stdcall
zzhgb
2010-06-30
打赏
举报
回复
这个不是com的,因为com的是要定义类调用的,上边的很明显是API调用方式,vc得用LoadLibrary()调用,关键是参数的类型,应该是BSTR;不一定支持,很可能内存错误
lijianli9
2010-06-30
打赏
举报
回复
LoadLibrary()和GetProcAddress()链接库,你可以接着调用函数试试看
MoXiaoRab
2010-06-30
打赏
举报
回复
你确定那个VB写的DLL不是ActiveX的?
晒月光的青蛙
2010-06-30
打赏
举报
回复
动态加载可行啊,就用1楼说的两个函数
一名程序员
2010-06-30
打赏
举报
回复
BOOL Send(char *str1,char* str2,char* str3 ="");
试试这样调用行不行?
加载更多回复(4)
在
VC
客户端
调用
vb
的
dll
.rar_
VB
VC
DLL
_
VB
调用
DLL
_
VB
调用
VC
_
vc
调用
dll
_
vc
调用
vb
的
DLL
c++的一个很典型的应用就是
dll
的
调用
,对于怎么样好的
调用
dll
程序,阅读本程序对您将大有益处。
Dll
.rar_
VC
调用
VB
DLL
dll
创建,及在
vc
和
vb
中
调用
使用说明
用
VC
#.NET开发交互式CAD系统
用
VC
#.NET开发交互式CAD系统,包括结合GDI+和OPENGL两种方案。 联系平台客服可开发票。
vb
调用
VC
DLL
实例
vb
调用
VC
DLL
实例 希望对初学者有用。 包括
vc
写的
dll
vb
调用
,有源代码。
vb
.rar_
VB
ocx_
VB
调用
VC
_
VC
调用
VB
_
调用
dll
VB
调用
VC
编写的
DLL
.一般来说,
VB
和
VC
共同编程有3种方式:一种是
VC
生成
DLL
,在
VB
中
调用
DLL
;一种是
VC
生成ActiveX控件(.ocx),在
VB
中插入;还有一种是在
VC
中生成ActiveX Automation服务器
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章