吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10929|回复: 8
收起左侧

[易语言 原创] [原创思路,首发]利用VB制作 易语言dll com组件,大家收藏把 或许将来就用得到了

  [复制链接]
阿狸、不哭 发表于 2013-1-26 21:11
本帖最后由 阿狸、不哭 于 2013-1-26 21:18 编辑

com组件:简单来说就是用来和其他程序交互的 比如asp和易语言,注意这里的交互 并不是那些 post get 之类的.而是通过 creatobject 来创建对象。
而在于易语言中, 有个数据类型为 对象 。 通过该命令就可以调用 com组件.  在易语言中,并没有提供com操作引导,而且无 注册模块.   
研究了几天资料,最后放弃了用api操作 做com组件.后来想想 vb 编译出来的 dll 不就是 com组件了吗?于是乎,带着兴奋,研究了一晚 果然可以 ...毕竟我也不熟悉vb 只能马马虎虎的随便做了下。
不废话了 直接进入思路。


现在易语言 调用VirtualAlloc 函数 来申请内存,之后 在 要公开的易语言dll内插入一个参考的 整数型 参数(我是这样做的,你可以可以直接把申请到的 内存地址 返回,切记公开的函数必须是整数型),然后把易语言函数要返回的数据写到刚才申请的内存地址上 ,然后 VB端  和平常引用 dll 一样 ,然后 定一个 整数型参数来获取易语言的 参考的那个内存地址。 然后vb就可以利用RtlMoveMemory 复制内存 获得 返回的数据!思路就这么简单, 还有 有个地方必须注意,否则你们会像我那样的。在vb开头定义时候要注意
下面的红色一定要是 long   MyApi_app  返回的是指针.而不是函数的返回值,刚开始我就是犯了这个错误,这个引用dll还是易语言好使些 ... 直接获得返回值 ...

Private Declare Function MyApi_app Lib "GetStr.dll" Alias "GetStrLong" (ByVal 写入文本 As String, 返回地址 As Long) As Long

这个是我写的一个小程序,利用对象来获得 编辑框内的 文本长度, 核心的都是易语言做的,只有跳板vb做的 那个只起数据传输作用.
测试.png

免费评分

参与人数 1热心值 +1 收起 理由
鬼炙 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qq1129209565 发表于 2013-1-26 21:17
看看                     
头像被屏蔽
zhouhaoxiang 发表于 2013-1-26 21:22
鬼炙 发表于 2013-1-26 21:25
爱。珩 发表于 2013-1-26 21:26
看看额。

Peace 发表于 2013-1-26 21:38
建议发挥广泛,举例更好的应用实例,如何种情况下e必须借助vb dll来实现目的
buzhidao 发表于 2013-1-26 22:04
菜鸟路过啊
w501811225 发表于 2013-1-26 22:06
虽然看不懂但是还是支持下
月光灬指引 发表于 2013-8-8 02:01

谢谢你的分享!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 08:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表