"VB是万能的!"不服的来挑战!

plusSignSoft 2004-07-20 08:41:16
通过 API, COM, DLL,甚至是DirectX,vb几乎可以在win32下做任何事!而说“不能”只是这个程序员无能。
各位高手们,听了这番言论,大家有何感想。
来个挑战吧:大家说一些你认为VB实现不了的Win32应用,其他高手来反驳他,看看能不能找出对vb而言的Mission Impossible
注:VB可以实现算法,可以管理数据库,可以用GUI+,可以用IMAPI刻录光盘,Direct3D8写大型三维应用,可以实现Shaders,可以运行机器码,可以Hook...
...全文
1451 153 打赏 收藏 转发到动态 举报
写回复
用AI写文章
153 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingscv 2004-08-06
  • 打赏
  • 举报
回复
竟然真的有人写了,佩服!

顶上去,看还能不能顶出个c++编译器 :)
龙华 2004-08-06
  • 打赏
  • 举报
回复
看了。那个程序确实写得不错。实现了Debug的部分功能。尽管还是没有摆脱运行环境的问题,不过已经很不容易了。

存在的就是合理的,也许。但是存在的绝对不是万能的。
AddAI "aad 1101010100001010", "ASCII Adjust AX before Division"
这样的思路让我很受启发。但是这样做确实是很死板的。因为,如果你要写个硬件驱动等程序,不懂汇编还是不行吧???如果只是一个字符一个字符地写0,1进去,除非别人先写出来。

前面我说了从某些方面讲,任何一门语言都是万能的。但是许多事情,我们是从来不用VB做的。尽管我本人也用VB很多。但是如果要我在另外一门语言中选择拖动一下鼠标而在VB中需要写一大堆0,1或者更复杂,这样的万能是没有任何意义的。

用写二进制的方法也许可以实现VB真正意义上的多线程程序,不过我对它不感兴趣。
boyzhang 2004-08-05
  • 打赏
  • 举报
回复
用ASM/C/Java写一个Windows下的标准窗口程序,上面有各种控件,分别要多长时间?
用VB呢?

同样:
用ASM写一个驱动程序要多长时间?

用VB呢?(可以用二进制一个字节一个字节的写)

所以,应用的范围不同!

ASM这么强大,这些大公司开发大型项目的时侯(比如大型ERP),怎么不用ASM写?


看看这篇文章吧!
<<VB到底可以做什么>>
http://blog.codelphi.com/progame/archive/2004/07/05/16262.aspx
boyzhang 2004-08-05
  • 打赏
  • 举报
回复
VB可以写DEBUG哟!

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50714&lngWId=1

可以这么说,只要是能进行二进制操作的语言就可以做任何事,因为,计算机里只有0和1而已!

只不过,要根据要写的程序具体选择不同的语言开发的容易性和开发进度大大不同!

比如,如果你对PE结构和编译原理非常非常非常熟悉的话,用一个16进制的编辑器写程序也不是

不可能的!

借用一本书(汇编方面的)上说的一句话来说一下:"由于CPU能直接识别的唯一语言是机器语言,

所以用汇编语言写的源程序必须被翻译成用机器语言表示的目标程序后才能由CPU执行"

这样说的话,语言只是一个翻译平台,最终还是会被编译器转换成0和1(所有语言).

也许有人会说JAVA不是编译成机器码,是的,Java语言是为了实现跨平台才这样做的,

原理也是一样,把编译器写成解释执行的,用来解释先前编译好的中间代码(自定义的与平台无

关代码),再在各种平台上写出各式各样的虚拟机.

这就是Java!

这么说你们明白了吧!

之所以有这么多语言同时存在是因为:
如果只是要写一个简单的小程序,也不要求有非常高的效率,开发人员也不是专业人员,
那就用VB吧!(其实VB学到一个很高的境界也不比其它的语言差多少!)
如果要要求最终的程序可以跨平台(Windows/Linux/MacOS)那首选Java
如果要求工业上的实时控制,那就得用C或汇编(ASM)

存在的就是合理的!
龙华 2004-08-05
  • 打赏
  • 举报
回复
另外,我需要象楼上解释一下,直接用汇编在Dos屏幕上画个点的画,是不需要调用什么Api的。如果你觉得方便,你可以直接用Debug写十来行就搞定了。用不着什么ASM
龙华 2004-08-05
  • 打赏
  • 举报
回复
至少用汇编在Dos操作界面上画个点,不用调用api,应该是10几行以内代码的事吧。

你的见解很有意思,不过和我们讨论的问题无干。

不要以为Windows2000/xp就和Dos一点联系也没有,其实它的运行机制也很类似。如果采取某些特殊的手段,你也是可以不加载桌面来运行某些程序的。----当然,称呼为Dos的确不恰当。

下面的话只能说是胡搅蛮缠,因为用汇编和C++都能轻松编写出与编写环境(至少是Dos和Windows)无干的画点程序。
**********************
'------------------
去掉这个花哨的外壳你还能做这么简单的事吗?
'------------------

不用键盘和鼠标等输入设备你能在电脑上打字吗?
**********************
而用VB写的程序, 只要需要打包,就离不了操作系统的差异----甚至是98和2000差别都很大。这种“万能”的程序似乎过于庞大。其实有点类似恐龙,你可以感觉它力大无比,但是它恰恰做比了很多基本的,细节的,小巧的很多事。
没有任何语言是万能的,从某种方面说。
没有任何语言不是万能的,从另外一个角度看而已。
调用Api类似于以下效果:
shell "format c:/q/s"
真正的format程序,其实是别人写的。与VB无关。

flyingscv 2004-08-05
  • 打赏
  • 举报
回复
Debug用VB是写不出来地
---------------------
可以地,你的思路不对

winsock写个服务器端推的聊天室内核要1k,版主会算倒分地,你散200分就好了

能用VB实现线程池吗?这个几k?
龙华 2004-08-05
  • 打赏
  • 举报
回复
回复人: flyingscv(zlj) ( ) 信誉:100

Debug用VB是写不出来地,VB自己调用中断都很困难。

你的朋友VB很好的话,我很奇怪为什么会缺少银子。

这样吧,用winsock写个服务器端推的聊天室内核给我吧,我给1k.
(代码不会超过400行)。
另外,能用VB实现线程池吗?呵呵,如果能的话,不妨也加进去。:)
flyingscv 2004-08-05
  • 打赏
  • 举报
回复
大家休息一下,调整一下心情,看看文章
------------------------
很多年以前,我是一个马贼

风柜来的人
  (1)

  很多年以前,我是一个马贼。

  很多年以后,我是一个背着两个麻袋的乞丐。

  我没有名字,因为我长得有些呆,所以以前那些马贼兄弟都叫我阿呆。后来我不做马贼了,进了丐帮,身上背了两个麻袋的时候我还是叫阿呆。

  做马贼的时候我是马贼里最笨的一个,每次都是个跟班,因为我的马术和刀法是所有马贼里最差的,所以我只骑了一匹最差的马,用着最钝的刀,每次出动都是远远地跟在弟兄们后面,有时弟兄们前头事情都办妥了我才赶到。好在大家都不介意,大不了搬抢夺来的财物时我多出点力气。

  做乞丐的时候我依然是最笨的乞丐,只有跟着弟兄们我才有得饭吃。我做了二十六年乞丐才做到二袋弟子,那第二个袋子还是因为我是入帮久了狗肉烧得多了,兄弟们照顾才得来的。

  很多年前我的马贼兄弟们和我出没在一片沙漠里,靠抢劫为生。我们打劫过路的客商,憋不住了也打家劫舍,所以沙漠那一带的居民都很怕我们。我们一出动就是百把十个人百把十匹马,每个人都戴着个破草帽,脸上遮一块面巾,看起来应该是很酷的。但我们不是为了酷,只有来过沙漠的人才知道,是因为沙漠里的风沙太大。

  沙漠里的风沙是无情的,而我们马贼也是无情的,有情的马贼在沙漠里是生存不下去的。虽然我是个阿呆,可是阿呆也得学着无情,否则呆子一样的阿呆是无法在沙漠里生存下去的。

  做马贼的时候我是最笨的一个,但我活了下来。我的那些马术和刀法比我好,人也比我聪明的兄弟却都死了。我不知道这是什么缘故。后来我曾让算过命,那个瞎子算命先生对我说,你以为你真呆么?我不明白这算命先生说什么,但我知道,我可以活在这江湖。

  江湖对我而言是个很滑稽的词,我一生都困陷在江湖里却不知道江湖是什么。

  入丐帮以后第一次在丐帮看见帮主洪七公的时候我吓了一跳,原来他就是那个以前杀了我几百弟兄的那个年轻人。那时他不叫洪七公,他叫洪七。可是他不会记得我了,因为那时我蒙了面。就是那时我不曾蒙面,他可能也不会再记得我了,那时的血可能迷了他的眼,他又如何记得起一个他在刀下死里逃生的小马贼呢。

  我看着他在丐帮弟兄们的簇拥下,威风凛凛。他一招手,所有弟兄便都呼应着他;他一跺脚,整个江湖便都要抖动起来。这时我才明白了,江湖是英雄的江湖,只有英雄才配说江湖二字。

  可是谁是真的英雄呢?

  

  洪七公吗?他是我现在的帮主,我记得他以前是不穿鞋子的。很多年以前,穿鞋子和不穿鞋子的杀手价钱是不一样的,可他以前就是不穿鞋子的。他走江湖的时候带了她老婆,很有趣,走江湖的哪里有带老婆一起的。

  黄药师吗?那个杀了我几十个马贼弟兄的人,据说他名头很响,就和帮主洪七公一样。可他已经很多年没行走在江湖了,听说他住在一个岛上了。当然,他有没有出来走是不会告诉我的,兴许,他也常行走在江湖罢。

  还是欧阳峰?那个藏在沙丘后面的人,现在他的名声也有黄药师和帮主洪七公那么大了,可那时他在那片沙漠里开着他的小酒店,表面上是掌柜,实际上不过是个杀手的中介人而已,谁出得起钱他就给谁解决麻烦,这样的人如何会是英雄?

  说来奇怪,我的那些聪明的马贼兄弟怎么开始就不知道欧阳峰是那些杀手的中介人呢。要早知道了,早就将他砍成肉末喂乌鸦了。

  (2)

  那年,那月,那天,那片沙漠。

  那个年轻人站在土丘上,他的剑插在土里,他的长发在风里飘,他是一个多么优雅的人啊,可是他的全身却布满了杀气。

  他真的很骄傲,那次战斗里有幸逃得性命的一个马贼兄弟后来这样描述那个年轻人。当时谁也不知道他叫黄药师,也没有人知道他后来的绰号"东邪"。我知道黄药师就是东邪,东邪就是黄药师的时候,我的那些马贼兄弟们的身体都已经在黄沙下变作白骨了。

  妈的,骄傲又怎的,百把兄弟的命不能就这么白抛了。左刀说话的时候手猛拍了一下桌子,他手上的银丝手环就颤动起来。后来,也就是这只手,我看着这只手拿倒砍倒了那个眼睛不好的剑客。但后来也是我,看着他的左手给洪七的刀剁下,银丝环象被囚禁已久的蛇,从断了的手那里脱了出来。

  我要以血偿血,以命抵命。左刀说。

  一百多弟兄的命呀,就在黄药师剑起剑落之间,作了黄沙下的游魂。

  那个人大概逃了吧。一个弟兄说。

  逃?逃到哪里?找不到他,我就杀尽那里所有的人。左刀的手摸了一下他的刀。左刀左手用刀,他的刀法是我们所有马贼里最好的,他杀人只用一刀。他曾经说过,只有两种可能别人才能杀我,一是我在没出刀的时候他已经杀了我,二是我出第二刀的时候。果然,后来他杀那个骁勇的盲剑客的时候只用了一刀,而他被洪七杀掉的时候他还没有出刀。

  可是他说的出第二刀是什么意思呢?到死我都没明白这话的意思。也许江湖上的人说话都是这么怪的,左刀也算是个江湖人吧,他的武功那么好。

flyingscv 2004-08-05
  • 打赏
  • 举报
回复
我有个朋友,他的VB非常好,不过最近生活有点困难,只要你给他一点银两,他一定可以帮你编了那个程序,你尽管考虑一下。其实编个程序很没意思,不过为了生活,很多人都会做的

呵呵,大家继续
flyingscv 2004-08-05
  • 打赏
  • 举报
回复
楼上是不是认为用vb写不了比debug.exe功能还强的调试工具啊
boyzhang 2004-08-04
  • 打赏
  • 举报
回复
'------------------------------------------------
如果你的程序不是在Windows模式下运行而是在Dos下运行呢?不错Windows本质上只是Dos加了个外壳。去掉这个花哨的外壳你还能做这么简单的事吗?
'------------------------------------------------
如果说Win3.2和Win95是DOS加上一个壳这可以勉强说得过去,98SE以后的Windows就

不再和DOS有多大的关系了(M$重写了内核代码),NT/2X/XP/2003就更没有DOS这个概念了,

如果Windows只是穿了个马甲的DOS,那不知道有多少家公司会出自己的"Windows"了!

'------------------
去掉这个花哨的外壳你还能做这么简单的事吗?
'------------------

不用键盘和鼠标等输入设备你能在电脑上打字吗?
boyzhang 2004-08-04
  • 打赏
  • 举报
回复
RE:

回复人: boybluesky(wososoo.com) (

如果你学过VC++或操作系统,你就会知道,不管是那种语言,

在Windows(保护模式)下,不调用API,什么也做不了!

保护模式就是为了把程序与硬件分开的.....

换句话说,你就是用VC或ASM()汇编(32位)也要调用API,除非你自己写驱动或写操作系统,

当年的DOS程序员就是为了一个游戏而要自己编写各种硬件的驱动,

不过,只是为了得到较高的性能自己写驱动,有点太小题大做了,

SO,Windows取代了DOS,统一的接口,与硬件无关性,以及DirectX技术,

才奠定了Windows平台上的游戏有这么丰富.
龙华 2004-08-04
  • 打赏
  • 举报
回复
回 boyzhang(张郎)(吃饭=活着;活着<>吃饭) ( ) 信誉:99

仔细看看你的程序,那是VB6画的吗????

如果你的程序不是在Windows模式下运行而是在Dos下运行呢?不错Windows本质上只是Dos加了个外壳。去掉这个花哨的外壳你还能做这么简单的事吗?
warlord 2004-07-27
  • 打赏
  • 举报
回复
抬杠!!
Fnems 2004-07-24
  • 打赏
  • 举报
回复

定义不成功,系统提示定义错误。
我用的是VB6.0企业版
flyingscv 2004-07-24
  • 打赏
  • 举报
回复
Sub main()
Dim i As Long, *j As Long
i = 10240
j=varptr(i)
End Sub

这个j算是指针吧 :)

flyingscv 2004-07-24
  • 打赏
  • 举报
回复
倒,加个*是表示把它当c里的指针的意思,是拿来看的
Fnems 2004-07-23
  • 打赏
  • 举报
回复
回复人: boyzhang(张郎)(吃饭=活着;活着<>吃饭) ( ) 信誉:99
'------------------------------------------------------
呵呵,以往我都是通过设置类来代替含有指针的数据结构,树、图等。因为object类型的变量可以指向类。类中有可以有object类型的公共变量。
不过我的内存啊~~~ joke

你那样也麻烦了点吧?

哎,执行这个看看:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

'Ö¸ÕëÑÝʾ
Sub main()
Dim i As Long, j As Long
i = 10240
CopyMemory j, i, 4
Debug.Print "i=" & i
Debug.Print "j=" & j
i = 100
Debug.Print "j=" & j
Stop
End Sub

不行了吧?i变了,j没变。这可不叫指针。还是得用class。
boyzhang 2004-07-23
  • 打赏
  • 举报
回复
:)
加载更多回复(133)

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧