游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2966|回复: 9

专题征稿,使用DLL类

[复制链接]

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-1-9 23:52:00 | 显示全部楼层 |阅读模式
控件的使用大家都非常熟悉了,API呢?这是一种互通的方式,展开来说,对于大部分的DLL,都可以拿来利用。征集这方面的帖子,欢迎转贴。原创更感激!

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2006-1-9 23:57:00 | 显示全部楼层

Re:专题征稿,使用DLL类

     你结我的劝架贴是什么意思啊  ?  真是看不懂了.
      

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2006-1-10 00:18:00 | 显示全部楼层

Re:专题征稿,使用DLL类

嗯,抱歉,是因为要让技术贴浮上来,你的劝架贴已经达到效果了。

7

主题

229

帖子

247

积分

中级会员

Rank: 3Rank: 3

积分
247
QQ
发表于 2006-1-10 01:31:00 | 显示全部楼层

Re:专题征稿,使用DLL类

楼主我很支持你。我前几天用MASM写了一个DLL,效率绝对一流!MASM是汇编语言不用我说了吧?放上来给大家用用吧,大家可以把WIN32API扔了。VB的申明模式我已在我的BLOG写的很详细了。而Utils.dll只有4k(如果没加版权说明,DLL只有3K。酷!)。

里面的函数主要实现:

1、位操作(左移、右移仅这两个,需要增加者请留言);
2、进制转换(二进制(01的字串)<->十进制(32位整型),十六进制(0~F的字串)<->十进制(32位整型));
3、串操作(获取长度,拷贝,搜索位置等,常用的是获取长度,比lstrlen快N倍);
4、内存操作(拷贝,填充、置零。这些我想都可代替RtlMoveMemory、RtlFillMemory、RtlZeroMemory);
5、连续的十六进制构成的串转换成ASCII文本(这个功能超强!)。

VB的声明及汇编源码:http://dsdm.bokee.com/4104106.html
DLL下载:http://dsdm.bokee.com/inc/Utils.dll
如果大家有什么疑问,可留言给我。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2006-1-10 02:09:00 | 显示全部楼层

Re:专题征稿,使用DLL类

发一帖,关于vb6和vb.net中使用的DLL。

vb6中可使用的dll有两种,一种是标准的DLL,就是楼上的这种。大部分语言都可生成标准的DLL,很遗憾vb6不行。这种DLL靠函数工作,常用的API就属于这种类型。

另一种是ActiveX DLL,和控件一样,基于COM技术,遵循此规则编写的DLL在各种语言环境中都可使用,vb6中引用选项中可以设置使用的ActiveX DLL,引用后,其中的类和对象都可直接使用。微软早期提供了大量这种DLL,我用vb6时,全靠这些DLL过活。比如dx7forvb ado tts等。

现在com接口已是人老珠黄,基于函数导出的标准DLL某些时候也显得麻烦。新的com接口的开发库基本看不到了。

然后微软就出了基于.net接口的DLL,又称为.net组件,类库。类库的使用确实比编写com组件友好多了,我本着试试的想法就弄出了LL3D。感觉就像不过是代码写在里面一样,(好像确实也是这样.)vb.net支持这三种DLL。

我写的东西基本都会用这种DLL,目前可以给大家提供的就只有不成熟的LL3D了,可能还有bug,但是开源可以看到很多东西。

以后也会是这样,其实也很想提供对vb6的支持,可惜我对普通DLL导出类和Com组件编程都不是很好。有空的时候会加强一下。

7

主题

229

帖子

247

积分

中级会员

Rank: 3Rank: 3

积分
247
QQ
发表于 2006-1-10 02:20:00 | 显示全部楼层

Re:专题征稿,使用DLL类

版主,我只知道DLL和EXE一样是PE文件,变化就是头部一个字的第13位注明这个PE是DLL还是EXE。
虽然知道VB有activex dll,但是没用过,只做过几个ACTIVEX OCX。

7

主题

229

帖子

247

积分

中级会员

Rank: 3Rank: 3

积分
247
QQ
发表于 2006-1-10 05:16:00 | 显示全部楼层

Re:专题征稿,使用DLL类

VB6的DLL是不是也要依赖于MSVBVMx0.DLL的?我想应该是的,DLL和EXE都是PE文件,VB6生成的EXE是要依赖MSVBVMx0.DLL

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2006-1-10 12:10:00 | 显示全部楼层

Re:专题征稿,使用DLL类

确实vb6和其他语言编写的ActiveX DLL不同,他仍基于MSVBx0.dll解释执行,还会出VB专属的运行时问题。

其实控件和ActiveX DLL是很相似的,一个有可视部分,一个没有,就这样。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-1-10 12:45:00 | 显示全部楼层

Re:专题征稿,使用DLL类

能仔细解释一下Active DLL和标准DLL的不同吗?

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2006-1-10 14:37:00 | 显示全部楼层

Re:专题征稿,使用DLL类

从VB的角度看,标准DLL需要写函数导入,才能使用其中的函数。
而ActiveX DLL只要引用,即可直接使用其中的对象和类。

其实,所有的DLL根本上是一样的,ActiveX是使用了COM的机制编写的DLL。COM的书很多,我认识的很浅,就不多说了。总之这种机制的好处就在于跨语言。
曾经让我决定用VB6开发游戏的DX7forVB,微软就是以ActiveX DLL的形式提供的。

标准的DLL就只能是函数集,否则,在使用了自定义结构后,跨语言特性就大打折扣。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 05:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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