【小工具】VB6.0制作“标准DLL”----彻底摆脱ActiveX DLL的影子 软件vb6.0标准DLL 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 等了半天,资源终于显示出来了。下载地址:http://download.csdn.net/detail/chen8013/6371635免资源分下载,有兴趣的请看看。 如果你新建的是 ActiveX DLL 工程,则不会受到影响。编译出来的仍然是 ActiveX DLL,跟没有使用本软件一样。 哈哈,那些杀毒软件真够搞怪。新建一个标准EXE工程,什么代码都不写,总会有3、5个杀软报毒。我的这个写了一大堆的代码,扫描结果是全部都没发现病毒。 什么呀?你是说我的这个程序,申请的数据内存有“没释放”的?我可以很负责任的说,在我写的代码中,这些问题肯定不存在。并且,我的这个程序在运行时,申请的内存区是非常小的。active 是基于接口的。会有引用计数。系统会根据这个计数来回收资源。如果是标准的dll没有了那几个函数。也就没有了这个计数会不会在存在内存泄漏? 什么呀?你是说我的这个程序,申请的数据内存有“没释放”的?我可以很负责任的说,在我写的代码中,这些问题肯定不存在。并且,我的这个程序在运行时,申请的内存区是非常小的。active 是基于接口的。会有引用计数。系统会根据这个计数来回收资源。如果是标准的dll没有了那几个函数。也就没有了这个计数会不会在存在内存泄漏?你说的这个,跟我的这个工具是两回事。你所提的问题,完全是代码编写者的水平、能力问题。①即使你用ActiveX DLL,如果你的代码中有一些“完全属于自己管理”的内存申请,COM接口也无法给你做释放操作。②那些“带导出函数的ActivX DLL”,你运行通过Declare来调用的API,也跟COM无关,也不会有什么的“引用计数”。我这个工具,只是在VB6.0中实现一种不需要“搭车”的DLL链接方法。至于你刚才提到的“内存泄漏”问题,跟你用Declare来使用系统API或其它第三方API一样。只决定于“API提供者”,与我的这个工具毫无关联。 文章一开始的基本概念就是错的。首先,ActiveX DLL本身就是标准的dll,DllRegisterServer等几个导出函数就是标准的导出函数。其次,VB使用Hack手法导出函数形成非标ActiveX DLL的兼容性和各种问题的根源不是因为多了这几个COM特色的导出函数,而是VB编写的程序需要使用VBVM虚拟机。而直接调用导出函数,虚拟机以不正确的方式被加载,这是导致兼容性的根本原因。所以,要想让VB支持标准dll,除非你能重写VB的编译器和运行时类库,而无论怎么Hack那个链接器都是不可能有效果的。 你连我说的内容都还没弄明白,就妄加评论吧!!!我并没有说过“ActiveX DLL不是标准DLL”!!!只是强调了,用我的这个工具做出来的DLL文件,不是ActiveX DLL文件!你说的那些“大道理”,相信大家都见得多了,我在开始就说了不想在这方面做什么评论。你别没搞清楚问题实质,就说什么“不可能”。“除非你能重写VB的编译器和运行时类库,而无论怎么Hack那个链接器都是不可能有效果的”其一: 我的软件“说明”文件中清楚的写着,用这个方法在VB6.0中做出来的DLL,仍然需要VB6运行库的支持!其二: 我的这个工具,做DLL文件的“源码框架”是什么样的,既有模板文件,也有“自己搭建”的方法说明。 很明白的说了我做出来的DLL不需要任何类模块来“搭顺风车”,当然就根本不存在那几个ActiveX DLL才会 有的函数。 并且,也明白的说了,以前流传的方法,做出来的文件实质还是ActiveX DLL,所以才有那几 个函数在那儿。其三: 我的“工具”就是这一个程序,没有对VB6的编译机制作任何改动,我有使用我的工具做出的样例DLL、 还有应用示例在那儿! 请你用事实来证明,怎么个“不可能”法? 怎么“不兼容”了 ??? 最好还是少讲些空话,废话………… 你连我说的内容都还没弄明白,就妄加评论吧!!!我并没有说过“ActiveX DLL不是标准DLL”!!!只是强调了,用我的这个工具做出来的DLL文件,不是ActiveX DLL文件!你说的那些“大道理”,相信大家都见得多了,我在开始就说了不想在这方面做什么评论。你别没搞清楚问题实质,就说什么“不可能”。“除非你能重写VB的编译器和运行时类库,而无论怎么Hack那个链接器都是不可能有效果的”其一: 我的软件“说明”文件中清楚的写着,用这个方法在VB6.0中做出来的DLL,仍然需要VB6运行库的支持!其二: 我的这个工具,做DLL文件的“源码框架”是什么样的,既有模板文件,也有“自己搭建”的方法说明。 很明白的说了我做出来的DLL不需要任何类模块来“搭顺风车”,当然就根本不存在那几个ActiveX DLL才会 有的函数。 并且,也明白的说了,以前流传的方法,做出来的文件实质还是ActiveX DLL,所以才有那几 个函数在那儿。其三: 我的“工具”就是这一个程序,没有对VB6的编译机制作任何改动,我有使用我的工具做出的样例DLL、 还有应用示例在那儿! 请你用事实来证明,怎么个“不可能”法? 怎么“不兼容”了 ??? 最好还是少讲些空话,废话…………好了好了。 没看到这么做的意义是什么,做DLL直接用VC就可以了,干麻这么麻烦? 要说“意义”有多大,一般的人能搞出有多大意义的事来?以前就是因为“传说”了用“VB6.0做标准DLL”的方法后,引起了不少争论的。当然我的看法也是:用那些方法做出的DLL,是ActiveX DLL,只是“比直接编译出来的多了导出函数”。不管他们的方法如何,工程的基本架构,还是 ActiveX DLL 工程。没有基本的类模块就无法编译,所以编译后还是 ActiveX DLL文件。但我的这个工具做DLL,就不用类来搭建,所以就不是ActiveX DLL 。(当然如果你的源代码中,使用了类对象封装代码,仍然可以有类模块在里面。但编译后也不是ActiveX DLL)要说“麻烦”,有这个工具后,做起来比用VC简单多了。特别是对我们这些只擅长用VB的来说,用这个比用VC方便多了………… 就像CCAV10里面播放的一个农民造飞机,飞机飞不起来,然后他开始研究啊,一会儿是让什么老婆孩子在后面推“飞机”,一会儿利用下坡增加“滑翔距离”,一会儿找了什么镇上跑运输的什么朋友,用农用车牵引,啰啰嗦嗦半天,确实不知道干嘛。最后他通过实践,证明了,他的“飞机”之所以不能飞,是马力不够。我想也是,找一个航空器设计专业的教授测量下质量、机翼、发动机功率、载荷之类的参数代入方程一算,2分钟搞定的事情还怎么拍电视呢。 不明白什么叫标准DLL?ActiveX DLL不是标准DLL?貌似微软都没提标准DLL的概念。 VB怎么字符串连接,不重写 一个问题 急 在线等 Combox控件的Scroll问题 在网络版软件中图片处理问题 请问怎么使用MSCOMM控件完成动态分配COMM端口号 简单数学问题, 如何把txt文件的内容在VB里插入到ACESS的表里 急!菜鸟问题:如何动态增加多个控件 請教各位,在VB中怎麼樣調用SQL的存儲過程? 请问:怎样得到工程目录下所有的.txt文件的名称?请尽快 webbrowser控件如何设置cookie 生日又到, 自己庆祝一下(又老一岁,有啥好庆祝的), 附上几张烟火表演的照片, 昨晚放烟火庆生................................
http://download.csdn.net/detail/chen8013/6371635免资源分下载,有兴趣的请看看。
我的这个写了一大堆的代码,扫描结果是全部都没发现病毒。
你是说我的这个程序,申请的数据内存有“没释放”的?我可以很负责任的说,在我写的代码中,这些问题肯定不存在。
并且,我的这个程序在运行时,申请的内存区是非常小的。
active 是基于接口的。会有引用计数。系统会根据这个计数来回收资源。
如果是标准的dll没有了那几个函数。也就没有了这个计数会不会在存在内存泄漏?
你是说我的这个程序,申请的数据内存有“没释放”的?我可以很负责任的说,在我写的代码中,这些问题肯定不存在。
并且,我的这个程序在运行时,申请的内存区是非常小的。
active 是基于接口的。会有引用计数。系统会根据这个计数来回收资源。
如果是标准的dll没有了那几个函数。也就没有了这个计数会不会在存在内存泄漏?
你说的这个,跟我的这个工具是两回事。
你所提的问题,完全是代码编写者的水平、能力问题。
①即使你用ActiveX DLL,如果你的代码中有一些“完全属于自己管理”的内存申请,COM接口也无法给你做释放操作。
②那些“带导出函数的ActivX DLL”,你运行通过Declare来调用的API,也跟COM无关,也不会有什么的“引用计数”。我这个工具,只是在VB6.0中实现一种不需要“搭车”的DLL链接方法。
至于你刚才提到的“内存泄漏”问题,跟你用Declare来使用系统API或其它第三方API一样。
只决定于“API提供者”,与我的这个工具毫无关联。
你连我说的内容都还没弄明白,就妄加评论吧!!!
我并没有说过“ActiveX DLL不是标准DLL”!!!
只是强调了,用我的这个工具做出来的DLL文件,不是ActiveX DLL文件!你说的那些“大道理”,相信大家都见得多了,我在开始就说了不想在这方面做什么评论。
你别没搞清楚问题实质,就说什么“不可能”。“除非你能重写VB的编译器和运行时类库,而无论怎么Hack那个链接器都是不可能有效果的”
其一: 我的软件“说明”文件中清楚的写着,用这个方法在VB6.0中做出来的DLL,仍然需要VB6运行库的支持!
其二: 我的这个工具,做DLL文件的“源码框架”是什么样的,既有模板文件,也有“自己搭建”的方法说明。
很明白的说了我做出来的DLL不需要任何类模块来“搭顺风车”,当然就根本不存在那几个ActiveX DLL才会
有的函数。 并且,也明白的说了,以前流传的方法,做出来的文件实质还是ActiveX DLL,所以才有那几
个函数在那儿。
其三: 我的“工具”就是这一个程序,没有对VB6的编译机制作任何改动,我有使用我的工具做出的样例DLL、
还有应用示例在那儿! 请你用事实来证明,怎么个“不可能”法? 怎么“不兼容”了 ???
最好还是少讲些空话,废话…………
你连我说的内容都还没弄明白,就妄加评论吧!!!
我并没有说过“ActiveX DLL不是标准DLL”!!!
只是强调了,用我的这个工具做出来的DLL文件,不是ActiveX DLL文件!你说的那些“大道理”,相信大家都见得多了,我在开始就说了不想在这方面做什么评论。
你别没搞清楚问题实质,就说什么“不可能”。“除非你能重写VB的编译器和运行时类库,而无论怎么Hack那个链接器都是不可能有效果的”
其一: 我的软件“说明”文件中清楚的写着,用这个方法在VB6.0中做出来的DLL,仍然需要VB6运行库的支持!
其二: 我的这个工具,做DLL文件的“源码框架”是什么样的,既有模板文件,也有“自己搭建”的方法说明。
很明白的说了我做出来的DLL不需要任何类模块来“搭顺风车”,当然就根本不存在那几个ActiveX DLL才会
有的函数。 并且,也明白的说了,以前流传的方法,做出来的文件实质还是ActiveX DLL,所以才有那几
个函数在那儿。
其三: 我的“工具”就是这一个程序,没有对VB6的编译机制作任何改动,我有使用我的工具做出的样例DLL、
还有应用示例在那儿! 请你用事实来证明,怎么个“不可能”法? 怎么“不兼容”了 ???
最好还是少讲些空话,废话…………
好了好了。
以前就是因为“传说”了用“VB6.0做标准DLL”的方法后,引起了不少争论的。
当然我的看法也是:用那些方法做出的DLL,是ActiveX DLL,只是“比直接编译出来的多了导出函数”。
不管他们的方法如何,工程的基本架构,还是 ActiveX DLL 工程。
没有基本的类模块就无法编译,所以编译后还是 ActiveX DLL文件。
但我的这个工具做DLL,就不用类来搭建,所以就不是ActiveX DLL 。
(当然如果你的源代码中,使用了类对象封装代码,仍然可以有类模块在里面。但编译后也不是ActiveX DLL)要说“麻烦”,有这个工具后,做起来比用VC简单多了。
特别是对我们这些只擅长用VB的来说,用这个比用VC方便多了…………