向acptvb (微软全球技术中心 VB技术支持) 请教几个不好回答的问题。 向 AdamBear (学习再学习) 兄学习!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 老兄,不管ACPTVB是否回答,可否把你自己的研究结果先贴出来?大家一起进步么。 关注。(我试着解释第4个问题可以吗?)CopyMemroy实际是RtlMoveMemory的别名,而RtlMoveMemroy是MS的未公开API。(据说这样,错了请指正) rushing(勇敢的心):被黑心版主把帖子转到非技术区后就这样了. 不如AdamBear (学习再学习)贴出自己的解释给大家看看 :-) 太棒了!!!!!to: AdamBear (学习再学习) 什么时间可以看到<<真是想不到>>继续关注 去OFFICE应用看看,他也是哪里的斑竹 我是96,的情况是这样的:发了个问题在技术区,想看看能否转到高手区(使用说明里讲可以的),但试了一下不行,我松开鼠标,帖子突然转到了Delphi区里面去(可能SelectItem刚好在istBox的Delphi上),我把它转回了VB区,想再看一看确认一下,就又Click了那个转帖的ListBox,并习惯性地转了一下鼠标滚轮,结果帖子立刻到了非技术区,并且把分扣光了,还扣了3分信誉分!搞得我现在都不敢去试转帖然后我就发了个帖子,询问斑竹情况,第二天就被转到了非技术区,又扣掉3分信誉分,并且对我的问题置之不理!http://www.csdn.net/expert/topic/524/524992.xml后来我又给他留了言,问他怎么回事(既然转帖扣分,说明已经看过贴了,为什么不回复我),可还是没人理我!这方面C++的斑竹作风就好多了,在高手区放了通告,反复提醒大家注意,而且改版前的帖子都不转的。 我的第一篇文章《VB到底为我们做了什么》已经发给了CSDN文档,已经两天了,还在审核中,不知是不是他们认为我的结论有问题。 文章有8000字,所以不好在这里贴。 只有继续等,想先看看的人,留下你们的Mail,给你们发。 第二篇《API和COM,文档里不清楚的问题》正在写,东西在我脑子里,不过,我想用实例和实验来说明问题,所以还要准备一些代码。 因为写东西,所以比较忙,只能断断续续来看看CSDN的贴子了。 下面这个贴子刚更新过,内存共享和进程通讯的新版本,前天刚加上的。我曾说这是这方面最快的方法,但在那个VC的DLL代码中有个位置我说错了,我在VC中用了ASNI和Unicode的转换,我说要避免这种转换只有什么Variant或Byte Array, 实际上就用BSTR也可以不转换,我是在写API调用的问题时突然意识到这个问题的,不过技术本身上应该还是最快的。你们可以看看下面的贴子中我的更新部分: http://www.csdn.net/Expert/Topicview.asp?id=516072 我也知道acptvb不好回答我这些问题,不过我们应该强烈要求他回答。我可以先告诉大家,由第1个问题而来的惊人猜想,我会在第一篇和第二篇文章里用实验来证明我的猜想,这个猜想就是凡是能够被重新定义的VBA函数在效率上就还有提高的必要。甚至就在VB中自己写也能写出比VBA函数更快的函数(如果你不怕可能产生的问题的话),当然VB已经对绝大部分计算相关的函数进行了优化,但仍有不少漏掉了,比如Rnd。Bruce是我佩服的一位大师,不是因为他的技术有多么历害,而是因为他的研究和创新精神,现在我把他的《VB核心编程》中关于CopyMemory的部分拿出给大家看看,让我们不能不佩服Bruce:同时也to Chice_wxg(我怕谁?我是谁!我是流氓我最贼。):【CopyMemory:一个奇怪而可怕的传奇】 关于这个用于复制内存内容的WIN32函数为什么叫CopyMemory,有一个很长的奇怪故事,尽管Visual Basic和Windows API中没有这种函数。 最开始是我想要查找WIN16 hmemcpy函数的WIN32等价函数,以用于VisualBasic 4.0版中。没有这个函数,哪怕是一个说明这个函数已经废弃的注释也没有。 最后我可提出的一个最接近的函数,CopyMemory函数,它与hmemcpy有着相同的参数,并且其文档也相同。不幸的是,不管你在WIN32文档中读过什么,其中没有像CopyMemory这样的东西。你可以使用DumpBin实用程序来搜索所有32位DLL,但是你将不会找到有任何DLL包含有CopyMemory。 如果你仔细地搜索WIN32的C包含文件,你将会在WINBASE.H中发现如下内容:#define CopyMemory RtlCopyMemory#define MoveMemory RtlMoveMemory#define ZeroMemory RtlZeroMemory 它指示CopyMemory是名为RtlCopyMemory的函数的另一个名称。不要问为什么;只需要在KERNEL32.DLL中查找RtlCopyMemory。同样,没有。WIN32包含文件中的其他跟踪显示了其原因:在WINNT.H中包含有类似于如下的内容:#define RtlCopyMemory(dst, src, len) memcpy(dst, src, len) 也就是说,RtlCopyMemory是C语言memcpy函数的一个别名,但是你不能在Basic中使用memcpy或其他任何C语言库函数。文档中声称CopyMemory是一个Windows函数而不是一个C语言函数,显然它是在说谎。如果它不是从一个DLL中输出,则你不能调用它。KERNEL32.DLL确实包含有一个用于RtlCopyMemory的项。如果你查看WIN32文档,你将看到MoveMemory与CopyMemory做相同的事情,除了它们处理重叠内存的方式不同之外。我不能想像这样一种情况,一个Basic程序将会去复制重叠的内存。没有理由不使用MoveMemory来代替它。名称CopyMemory看起来比hmemcpy或MoveMemory更智能一些,因此我对于16位和32位版本都使用这个别名:#If Win32 Then Declare Sub CopyMemory Lib "KERNEL32" Alias "tlMoveMemory"(_lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)#else Declare Sub CopyMemroy Lib "KERNEL" Alias "memcpy" ( _lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)#End If Windows API类型库具有一个CopyMemory函数的等价(或者几乎是等价)。上面解释了我为什么使用CopyMemory,但是为什么其他每一个人都使用CopyMemory呢?因为我把一份拷贝发送到了Microsoft的一个内部别名,并且某个读到它的人决定它应该成为一篇很好的Knowledge Base文章。我同意了,但条件是他们在提到这一段时说明这是摘录我的书。我认为这是一个好广告。自那以后,我读到了一些文章,在VBITS会议上听到一些人谈论CopyMemory,仿佛它真正存在一样。但是他们没有提到本书才是它的源来。因此不要被错误的广告所蒙蔽。如果他们谈论RtlMoveMemory,则他们是自己想出来的。如果他们谈论CopyMemory,则他们是从我这里得到的(或许他们自己还不知道)。 嘿嘿,怎么样,Bruce Mckinney酷! 怎么样,佩服吧!Bruce还说他曾把一个Win32 API类型库给了微软,这个类型库非常好用,你几乎不用再用API Viewer了来找声明了,我们可以象在VC里一样直接用API了,这样做的好处和坏处,我会在我的文章中用实验来分析,算是对几位大师的一点补充和更正。我想向acptvb问问是不是有这回事,为什么不在VB里提供它,却又偷偷把它放在了Win98 Resoure Kit里?我不为什么,只是想帮Bruce大师说几句话。 我佩服Bruce的另一个原因是他很有共享精神,他把他的代码公布了,虽然他诅咒所有没买他的书的人用它的东西。我很想买他的书,不过MSDN已经有,而且我不知哪儿买。 我也会把我的研究和代码公布,我也诅咒那些用我的东西却没有留下我名字的人。我诅咒!我在《电脑报》2000年第44期发表的《如何防范危险邮件》一文,被一个叫杨书琴的人偷了,而且一稿多投,分别在《黑客防线》2002年第一期和《电脑爱好者》2002年第2期上发表成《需要防范的几个危险文件》,文章中连我的错误一起偷了去,让我很是气愤,大家帮我一起骂骂他。我给这两家杂志,反应问题却没有回复。又写篇《防微杜渐》用来更正原《防》文的错误并提出新的方法,可是也没有回复,这种态度让我再也不想给这些杂志写文章,这篇文章我准备在CSDN文档里公布,以后写文章就到CSDN来写,虽然我还没有满意的工作(只要能让我写程序研究技术并且不饿死,我就很满意),虽然现在我一个月不到1k, 但我绝不是要靠那点稿费生活,我写文章说高尚点是为了中国计算机技术的发展,说低点是为了满足自己的虚荣心。 真的,我非常喜欢有人吹捧,呵呵,来吹我吧,我给分。 对了,我可不敢给向acptvb (微软全球技术中心 VB技术支持)发短消息,怕他扁我,大家可以帮帮我的忙,把他请出来说几句话。 高!up!想读一下《VB到底为我们做了什么》[email protected]thanks. 想读一下《VB到底为我们做了什么》[email protected] 学习你的文章。[email protected] 在发表意见之前,最想看,《VB到底为我们做了什么》[email protected](学习再学习) :说实在的,用API的人都知道那样的类型库,有多重要。对于《黑客防线》和《电脑爱好者》这样不负责的杂志,最好大家在各个网站上发表建议;还要提高自己的水平,最好搞一个我们自己的,来为我们自己说话。关于微软的一些,我认为微软的目标是:VB只是一种针对普通代码开发者的工具,其实再深下去,还不如直接用VC,BCB,方便,所以真正写代码的人,谁会说自己对C一点都不懂,对VC中的各种机制都不懂,在写代码的时候,很多在VB里没有办法做的,我都是仿对VC中的机制来解决的,比如:消息映射。微软的东西,整体是不错,有些地方很精彩;总之,我们要多学了。且不管微软的是什么态度吧,反正,以后我会为LINEX及WINDOWS,开发软件,很想有一个(唉,以后要学的东西很多)对于acptvb (微软全球技术中心 VB技术支持),我给他发消息好了,是需要解释一下,如果连解释都要扁,就扁吧,大不了封我账号。 to hx(乱云山风): 说得好,我也用VC,不过我觉得还是VB亲切。 我不会再给杂志投搞,又慢。 对于这些问题,无论有没有回答,我都会在今天晚上给大家一个答案。 我的文章CSDN要是再不发,我就把它一点点贴出来!!! 支持。给我一份[email protected] 《VB到底为我们做了什么》[email protected] 《VB到底为我们做了什么》[email protected] 《VB到底为我们做了什么》[email protected] :-) 《VB到底为我们做了什么 》[email protected] 《VB到底为我们做了什么》[email protected]^-^这里有好多大师,我要虚心学习^-^ TO hx(乱云山风) 完全同意,学习VC更有利于学习VBTO : AdamBear(学习再学习)CSDN里让我佩服的人很少,不过您就是一位,呵呵(让我佩服的人:starfish, wwwunix,也有那么许多吧,其他人名单暂时不公布了 ^_^)平时虽然少见发言,但也很有深度。我也对现在的杂志很反感,所以很少买杂志了,不过为了需要,我还是定了《电脑编程技巧与维护》(虽然也有许多抄袭的东西,但感觉比其他杂志好)。原来我在电脑爱好者上也投过稿,顺便得到一份杂志(因为我没定,也不想买),而就是这份杂志,上面就有两篇网上已经抄烂了的文章。气的我把书扔了,懒的再看。哎!中国现在版权问题太严重了。还有,Bruce大师是不是写了 win32.tlb,引用后可以直接使用API? 下拉框选项 急,在线等! 急啊,水晶报表问题,搞不懂哪里有问题了?报表出不来,出来了“Server has not yet been opened” 关于SQL语句..... inet_ntoa函數的宣告及使用方法 加急 如何在VB当中写多线程应用程序 datagrid中鼠标单击某一单元格,怎样获得该单元格的内容 求助:代码出错,那位大虾帮忙看看 程序安装完后出现的奇怪问题!!! MDI窗体的背景问题 我怎样改变sstab每一页的颜色 commondialog另一个问题!
大家一起进步么。
关注。
(我试着解释第4个问题可以吗?)
CopyMemroy实际是RtlMoveMemory的别名,而RtlMoveMemroy是MS的未公开API。
(据说这样,错了请指正)
to: AdamBear (学习再学习)
什么时间可以看到
<<真是想不到>>继续关注
我松开鼠标,帖子突然转到了Delphi区里面去(可能SelectItem刚好在istBox的Delphi上),
我把它转回了VB区,想再看一看确认一下,就又Click了那个转帖的ListBox,并习惯性地转了一下鼠标滚轮,
结果帖子立刻到了非技术区,并且把分扣光了,还扣了3分信誉分!
搞得我现在都不敢去试转帖然后我就发了个帖子,询问斑竹情况,第二天就被转到了非技术区,又扣掉3分信誉分,并且对我的问题置之不理!
http://www.csdn.net/expert/topic/524/524992.xml
后来我又给他留了言,问他怎么回事(既然转帖扣分,说明已经看过贴了,为什么不回复我),可还是没人理我!这方面C++的斑竹作风就好多了,在高手区放了通告,反复提醒大家注意,而且改版前的帖子都不转的。
两天了,还在审核中,不知是不是他们认为我的结论有问题。
文章有8000字,所以不好在这里贴。
只有继续等,想先看看的人,留下你们的Mail,给你们发。
第二篇《API和COM,文档里不清楚的问题》正在写,东西在我脑子里,
不过,我想用实例和实验来说明问题,所以还要准备一些代码。
因为写东西,所以比较忙,只能断断续续来看看CSDN的贴子了。
下面这个贴子刚更新过,内存共享和进程通讯的新版本,前天刚加上的。
我曾说这是这方面最快的方法,但在那个VC的DLL代码中有个位置我说错了,
我在VC中用了ASNI和Unicode的转换,我说要避免这种转换只有什么Variant或
Byte Array, 实际上就用BSTR也可以不转换,我是在写API调用的问题时突然
意识到这个问题的,不过技术本身上应该还是最快的。
你们可以看看下面的贴子中我的更新部分:
http://www.csdn.net/Expert/Topicview.asp?id=516072 我也知道acptvb不好回答我这些问题,不过我们应该强烈要求他回答。我可以先告诉大家,由第1个问题而来的惊人猜想,我会在第一篇和第二篇文章
里用实验来证明我的猜想,这个猜想就是凡是能够被重新定义的VBA函数在效率
上就还有提高的必要。甚至就在VB中自己写也能写出比VBA函数更快的函数(如
果你不怕可能产生的问题的话),当然VB已经对绝大部分计算相关的函数进行了
优化,但仍有不少漏掉了,比如Rnd。Bruce是我佩服的一位大师,不是因为他的技术有多么历害,而是因为他的研究和
创新精神,现在我把他的《VB核心编程》中关于CopyMemory的部分拿出给大家看看,
让我们不能不佩服Bruce:
同时也to Chice_wxg(我怕谁?我是谁!我是流氓我最贼。):【CopyMemory:一个奇怪而可怕的传奇】
关于这个用于复制内存内容的WIN32函数为什么叫CopyMemory,有一个很长的奇怪故事,尽管Visual Basic和Windows API中没有这种函数。
最开始是我想要查找WIN16 hmemcpy函数的WIN32等价函数,以用于VisualBasic 4.0版中。没有这个函数,哪怕是一个说明这个函数已经废弃的注释也没有。
最后我可提出的一个最接近的函数,CopyMemory函数,它与hmemcpy有着相同的参数,并且其文档也相同。不幸的是,不管你在WIN32文档中读过什么,其中没有像CopyMemory这样的东西。你可以使用DumpBin实用程序来搜索所有32位DLL,但是你将不会找到有任何DLL包含有CopyMemory。
如果你仔细地搜索WIN32的C包含文件,你将会在WINBASE.H中发现如下内容:
#define CopyMemory RtlCopyMemory
#define MoveMemory RtlMoveMemory
#define ZeroMemory RtlZeroMemory
它指示CopyMemory是名为RtlCopyMemory的函数的另一个名称。不要问为什么;只需要在KERNEL32.DLL中查找RtlCopyMemory。同样,没有。WIN32包含文件中的其他跟踪显示了其原因:在WINNT.H中包含有类似于如下的内容:
#define RtlCopyMemory(dst, src, len) memcpy(dst, src, len)
也就是说,RtlCopyMemory是C语言memcpy函数的一个别名,但是你不能在Basic中使用memcpy或其他任何C语言库函数。文档中声称CopyMemory是一个Windows函数而不是一个C语言函数,显然它是在说谎。如果它不是从一个DLL中输出,则你不能调用它。KERNEL32.DLL确实包含有一个用于RtlCopyMemory的项。如果你查看WIN32文档,你将看到MoveMemory与CopyMemory做相同的事情,除了它们处理重叠内存的方式不同之外。我不能想像这样一种情况,一个Basic程序将会去复制重叠的内存。没有理由不使用MoveMemory来代替它。名称CopyMemory看起来比hmemcpy或MoveMemory更智能一些,因此我对于16位和32位版本都使用这个别名:
#If Win32 Then
Declare Sub CopyMemory Lib "KERNEL32" Alias "tlMoveMemory"(_lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
#else
Declare Sub CopyMemroy Lib "KERNEL" Alias "memcpy" ( _lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
#End If
Windows API类型库具有一个CopyMemory函数的等价(或者几乎是等价)。上面解释了我为什么使用CopyMemory,但是为什么其他每一个人都使用CopyMemory呢?因为我把一份拷贝发送到了Microsoft的一个内部别名,并且某个读到它的人决定它应该成为一篇很好的Knowledge Base文章。我同意了,但条件是他们在提到这一段时说明这是摘录我的书。我认为这是一个好广告。自那以后,我读到了一些文章,在VBITS会议上听到一些人谈论CopyMemory,仿佛它真正存在一样。但是他们没有提到本书才是它的源来。因此不要被错误的广告所蒙蔽。如果他们谈论RtlMoveMemory,则他们是自己想出来的。如果他们谈论CopyMemory,则他们是从我这里得到的(或许他们自己还不知道)。
嘿嘿,怎么样,Bruce Mckinney酷!
这个类型库非常好用,你几乎不用再用API Viewer了来找声明了,我们
可以象在VC里一样直接用API了,这样做的好处和坏处,我会在我的文章
中用实验来分析,算是对几位大师的一点补充和更正。我想向acptvb问问
是不是有这回事,为什么不在VB里提供它,却又偷偷把它放在了Win98 Resoure Kit
里?我不为什么,只是想帮Bruce大师说几句话。
我佩服Bruce的另一个原因是他很有共享精神,他把他的代码公布了,
虽然他诅咒所有没买他的书的人用它的东西。我很想买他的书,不过MSDN
已经有,而且我不知哪儿买。
我也会把我的研究和代码公布,我也诅咒那些用我的东西却没有留下
我名字的人。我诅咒!我在《电脑报》2000年第44期发表的《如何防范危险
邮件》一文,被一个叫杨书琴的人偷了,而且一稿多投,分别在《黑客防线》
2002年第一期和《电脑爱好者》2002年第2期上发表成《需要防范的几个危险
文件》,文章中连我的错误一起偷了去,让我很是气愤,大家帮我一起骂骂他。
我给这两家杂志,反应问题却没有回复。又写篇《防微杜渐》用来更正原《防》
文的错误并提出新的方法,可是也没有回复,这种态度让我再也不想给这些杂志
写文章,这篇文章我准备在CSDN文档里公布,以后写文章就到CSDN来写,虽然
我还没有满意的工作(只要能让我写程序研究技术并且不饿死,我就很满意),
虽然现在我一个月不到1k, 但我绝不是要靠那点稿费生活,我写文章说高尚点
是为了中国计算机技术的发展,说低点是为了满足自己的虚荣心。
真的,我非常喜欢有人吹捧,呵呵,来吹我吧,我给分。
怕他扁我,大家可以帮帮我的忙,把他请出来说几句话。
想读一下《VB到底为我们做了什么》
[email protected]
thanks.
[email protected]
[email protected]
[email protected](学习再学习) :
说实在的,用API的人都知道那样的类型库,有多重要。
对于《黑客防线》和《电脑爱好者》这样不负责的杂志,最好大家在各个网站上
发表建议;还要提高自己的水平,最好搞一个我们自己的,来为我们自己说话。
关于微软的一些,我认为微软的目标是:VB只是一种针对普通代码开发者的工具,
其实再深下去,还不如直接用VC,BCB,方便,所以真正写代码的人,谁会说自己对C一点都不懂,对VC中的各种机制都不懂,在写代码的时候,很多在VB里没有办法做的,我都是仿对VC中的机制来解决的,比如:消息映射。微软的东西,整体是不错,有些地方很精彩;总之,我们要多学了。且不管微软的是什么态度吧,反正,以后我会为LINEX及WINDOWS,开发软件,很想有一个(唉,以后要学的东西很多)对于acptvb (微软全球技术中心 VB技术支持),我给他发消息好了,是需要解释一下,如果连解释都要扁,就扁吧,大不了封我账号。
说得好,我也用VC,不过我觉得还是VB亲切。
我不会再给杂志投搞,又慢。
对于这些问题,无论有没有回答,我都会在今天晚上给大家一个答案。
我的文章CSDN要是再不发,我就把它一点点贴出来!!!
给我一份
[email protected]
《VB到底为我们做了什么》[email protected]
《VB到底为我们做了什么 》
[email protected]
[email protected]
^-^
这里有好多大师,我要虚心学习
^-^
完全同意,学习VC更有利于学习VB
TO : AdamBear(学习再学习)CSDN里让我佩服的人很少,不过您就是一位,呵呵
(让我佩服的人:starfish, wwwunix,也有那么许多吧,其他人名单暂时不公布了 ^_^)平时虽然少见发言,但也很有深度。
我也对现在的杂志很反感,所以很少买杂志了,不过为了需要,我还是定了《电脑编程技巧与维护》(虽然也有许多抄袭的东西,但感觉比其他杂志好)。原来我在电脑爱好者上也投过稿,顺便得到一份杂志(因为我没定,也不想买),而就是这份杂志,上面就有两篇网上已经抄烂了的文章。气的我把书扔了,懒的再看。
哎!中国现在版权问题太严重了。
还有,Bruce大师是不是写了 win32.tlb,引用后可以直接使用API?