学习VB有几个月了,下面是我对学习笔记的分类,大家看看有什么建议。
在学习总体分类上还不是太清晰,CSDN上VB具体细节的回复已经很多了,
哪位能归纳总结一下学习语言心得(剔出VB特性),多谢了.#API函数
#ADO #Adodb和Adodc #RecordSet #Update #绑定 #存储过程 
      #过滤Filter #临时表 #事务 #通配符 模糊查询
#ActiveX #COM组件 #DLL #VxD
#INI #注册表 #启动
#Modem
#EXCEL #Word #XML #插件 #打印 #VBA
#OOP面向对象 #类模块
#安装程序制作工具
#SQL语言
#制作CHM
#菜单 #工具条 #按钮
#打印 #报表
#调试 #错误Error
#钩子 #消息
#控件 DataGrid  #DBGrid   #vsFlexGrid #vsPrinter #vsView
#控件 ActiveBar #ComboBox #ListBox    #ListView  #ToolBar 
                                         #TreeView  #Win9X控件
#屏幕 #窗体
#声音 #bitmap
#鼠标 #键盘
#数据库Access   #SQL Server 
#数组 #字符串
#图形 #图象
#网络 #通信
#文件
#压缩
#硬件 #控制
#手机
■■■■■■另外有两方面的问题要问:
[1]转换MSDN C代码到VB如果数据类型不属于
ATOM /BOOL /BYTE /CHAR /COLORREF /DWORD /HWND, HDC, HMENU /INT /UINT /LONG 
/LPARAM /LPDWORD /LPINT /LPUINT /LPRECT /LPSTR /LPCSTR /LPVOID /LPWORD 
/LRESULT /NULL /SHORT /VOID /WORD /WPARAM 等类型应该以何种规则或经验进行转换如果API是{X as long; Y as TypeX},是否可以不声明第二层数据类型TypeX{m as integer; n as single},把Y声明成 Y as Byte等常用类型作为特定用法。
[2]谁能简洁解释下面用语,千万别拷贝名词解释,
   请用说明、类比、举例等方法形象说出是什么和能干什么。多态  
重写
重构
重载___(二进制重载)
   |___(源代码重载)
关联
组合
衍生
继承
继承___单一继承
   |___多重继承
基于接口
组件
构件
泛型
派生 
前期绑定
后期绑定
构造函数
析构函数
虚函数(虚方法)
覆盖  (重  写)
虚基类  
类库
名字空间如果一定要用10000个字说清比尔.盖茨是个什么样的人,你适合当传记作家,
如果用50个字就行,你适合回答我的问题,贡献一下智慧吧,顺便考察一下自己。

解决方案 »

  1.   

    [2]谁能简洁解释下面用语,千万别拷贝名词解释,
    基于接口继承
    组件,构件,差不多
    前期绑定   ,使用new
    后期绑定   '使用createobject
    其他的vb中没有createobject与new 本质的不同。
    createobject与new 的关键区别就是声明后系统对资源的控制权不一样。
    createobject是由内存中重新创建一个实例而不是简单的资源计数器+1的概念。如果内存中存在一个这样的实例,编译器不会理会这个实例而是将对象重新创建一个。实际上是一个完全独立的新的资源实例。并且不受GC的资源回收控制,必须自己回收。
    new声明的时候,编译器回自动寻找内存中的相应实例,找到了以后,将资源计数器+1,并不会在内存中重新声明内存地址空间,他是受GC限制的,当编译器运行完毕后,会自动将资源编译器里面的该对象的资源计数器-1,如果为计数器0的话就自动释放该对象。
    ---------------------------------------------------------------1. new 为对象的前期绑定,在建立对象时会通过scm进行对象管理,此方法在编译时慢,运行时快
    2.createobject为对象的后期绑定,在建立对象是不通过scm进行对象管理,适应脚本应用程序,客户端或分布式程序,在编译时快,运行所占时间比较慢
    3.所有对象都要set object=nothing
    4.尽量以dll库建立对象,而不以.ocx建立对象,以减少所占资源
      

  2.   

    //如果API是{X as long; Y as TypeX},是否可以不声明第二层数据类型TypeX{m as integer; n as single},把Y声明成 Y as Byte等常用类型作为特定用法。有时候可以(更多的是声明为long),有时候不行,看情况而定,如:CreateProcess的标准声明为:
    Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long但有时我们为了方便使用,可将其修改为:
    Declare Function CreateProcessA Lib "kernel32" ( _
       ByVal lpApplicationName As Long, _
       ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal _
       lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal _
       dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal _
       lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, _
       lpProcessInformation As PROCESS_INFORMATION) As Long
      

  3.   

    //online(龙卷风V2.0--再战江湖) 
      前期绑定   ,使用new
      后期绑定   '使用createobject
      其他的vb中没有
    _______________________________________________________
     重载___(二进制重载)----------ActiveX算不算???
     类库                 ----------VB里也没有! 我想学的是编程语言,学习VB是我学习编程语言的方法,
     所以我想了解一些重要概念(不限VB),外加吸取你们的能量。//leesheng(小胜) 
      最好做出实用的程序来!!!
    _______________________________________________________ 
      多谢鼓励,一定努力。  经过一段时间的学习、比较,感觉学习大概可以分成两部分,
      一是了解为什么,这需要了解基础概念,估计最后还要去看Windows核心编程一类的东东
      二是以实现为目的,以满足市场流行、热点炒作概念(.NET)、客户需求心理、快速开发为导向  我本来是从二开始的,现在又跑到一上去了,我想把刀磨快了,砍起柴来总会事半功倍的!//rainstormmaster(暴风雨 v2.0) 
      看情况而定?
    _______________________________________________________
      而定依据?好像如果不需要第二层数据类型TypeX,通常就可以,不知是不是?//hdhai9451(※★菜鳥£☆※) 
     樓主學幾個月就想掌握那麼多?
    _______________________________________________________
      平时没时间,忙于本职工作,晚上学到半夜。看学习笔记分类的那些东西,自己就有感觉,
    中国程序员是怎么回事,就是盖房子的人,一部分是民工,一部分是建筑师,还有一小部分是
    设计师,我们对建筑材料属性有一点了解,对建筑材料的制造过程不太了解,盖房难吗!反正
    也不容易,干好了能建一座地标性建筑,干不好就是民工。设计师没想过,建筑师有可能,现
    在还是民工阶段,还是一个砌砖不太熟练的民工阶段。
      

  4.   

    楼主肯定要失望的,谁有空来这边教你这么多东西,还要简练精确,This is impossible.自已去看书比较好,虽然现在市面有90%的书是垃圾(有点过激),还是有10%的好东东的,系统的按照书的进程学习。出现难点的时候,再来CSDN有针对性的提问。如果以前没有学习过其他语言,那么你的进度太超前了,需要实践一部分后再学习。不然说了你肯定也听不懂。
    不过你的笔记作得不错,结尾那句说得挺好,偶看了忍不住上来废话。顺便给你解释一点:
    #ADO 数据库控制类,要作数据库需要系统地学习。
    #Adodb和Adodc  Adodb是Ado类的类名。Adodc是Ado数据控件,不用为妙。
    #RecordSet Ado中的一个对象,还有Connect对象,这两个对象是基本对象。
    #Update  如果是指Recordset的Update,那么就是更新Recordset,将当前Rs的一条记录行进行更新。
    #绑定 支持绑定的对象,会直接将数据的更新即时反应到对象中。
    #存储过程 SQL的相关名词,可集成多步SQL操作。 
    #过滤Filter Recordset的属性,可对记录集再筛选。
    #临时表 SQL的相关名词,“临时”的表,在当前事务退出之后就会卸载。
    #事务 SQL的相关名词,代表一段进程,可以RollBack.
    #通配符 “%”,和“Like”搭配使用。
    #模糊查询 用了通配符就是模糊查询了。
      

  5.   

    //zerg2001(刺蛇) 
    楼主肯定要失望的,谁有空来这边教你这么多东西
    _______________________________________________________________
    老大,我一共下载了,5000多篇文章,大部分来自CSDN,笔记应该不缺材料,提问的名词
    大部分我都有名词解释,我只是想了解你们是怎么理解和应用的。如果下定决心要学,
    有csdn这么好的资源还学不会,不只对不起自己,还对不起csdn。来的人多,每人说点,
    就多了。
      

  6.   

    补充一下:)//前期绑定   ,使用new
    //后期绑定   '使用createobject我认为所有声明为 object 类型的变量都是后期绑定的。
    而所有声明为某一个类的变量都是前期绑定的。然后,VB6里有GC?哇,单词都忘光了,不行,要补习…… 只记得一下这些了。多态  polymorphism    VB可以用implements语句实现limited多态,但怎么解释呢?
    重载___(二进制重载)  overloading   简单地说就是相同的函数名,但不同的参数列表(有时
                                        像 template)
       |___(源代码重载)
    继承  inheritance   简单地说就是在原有类的基础上添加新的功能。(分public, private,
                        protected)
    继承___单一继承  single(???) inheritance  只从一个类继承
       |___多重继承  multiple inheritance  从多个类继承
    基于接口  interface-based(???)   符合COM标准???
    组件  component   大概就是程序构架里实现某一特定功能的板块吧(?)
    派生  derived  派生类( derived class )就是一个从一个或多个类继承下来的类
    前期绑定  compile-time binding  应该算COM名词,在编译时按照类的定义生成的
                                   直接调用vtable中类成员的代码
    后期绑定  run-time binding  在程序运行时通过automation的IDispatch类间接调用类成员
    构造函数  constructor  类实例化时调用
    析构函数  destructor  类被删除时调用
    虚函数(虚方法)  virtual function (method)  在通过基类调用某成员时仍然调用
                                                派生类相应的成员,用vtable来实现。
    覆盖  (重写)  overriding(???)  就是在派生类中替换掉基类的成员。
    虚基类  virtual base class  不知道是不是指以virtual关键词被继承的基类
                                还是指被继承的抽象类
    类库  library(???)  类的库咯,嘿嘿
    名字空间  namespace  不好解释,在不同的名称空间下不能直接访问其他名称空间下的标识符。(using除外)以是都是瞎扯的,不能保证准确性。
    如果你兴趣浓厚的话还是建议到vc版去问。
      

  7.   

    楼主够强,和pig应该讨论下。至于语言,我从来就没有只能么把它分类。也没有总结,嘿嘿。我觉得学习VB三个东西最基本,事件,属性,方法。呵呵~~我记得我第一次考试就是考试一个 form中事件的顺序,其他我也没有办法帮你归纳,我不喜欢做这样的事情。个人是工作上要到什么了,就学习什么,所以我的api一直就不强,因为我没有时间去研究,其实对于企业erp开发,我主要是做一个crm段的部分,VB要求不是很高,但是,数据库一定要足够的好,控件一定要运用的熟练,还有就是一个大体的软件工程运用的好,这关于精练方面了。做完一个大型的系统过后,你就会深有感触了,呵呵~~不过我的VB一直不好,但是我一直就觉得其实真正企业在运用VB上面从来就没有到很深的地方。需求有限吧。
      

  8.   

    如果API是{X as long; Y as TypeX},是否可以不声明第二层数据类型TypeX{m as integer; n as single},-----------------------------对于Y是传值还是传地址?传地址:
    Declare Function FunName Lib "???" (ByVal X As Long, ByRef Y As TypeX)as long
    或(指针方式):
    Declare Function FunName Lib "???" (ByVal X As Long, ByVal Y As Long)as long传值只能:
    Declare Function FunName Lib "???" (ByVal X As Long, ByVal Y_m As Long,byval Y_n as Single)as long
      

  9.   

    转换MSDN C代码到VB如果数据类型不属于
    ATOM /BOOL /BYTE /CHAR /COLORREF /DWORD /HWND, HDC, HMENU /INT /UINT /LONG 
    /LPARAM /LPDWORD /LPINT /LPUINT /LPRECT /LPSTR /LPCSTR /LPVOID /LPWORD 
    /LRESULT /NULL /SHORT /VOID /WORD /WPARAM 等类型应该以何种规则或经验进行转换指针型全部“ByRef *** As Type”(引用形式,主要是结构体)或“ByVal *** as Long”(指针形式)
    二级指针就用“ByRef *** As Long”一般情况下只要字节数对应就行
    比如可以用Currency代替LARGE_INTEGER
    Public Declare Function GetTickCount Lib "kernel32.dll" () As Long
    Public Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
    Public Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
    '单位:毫秒
    Public Function GetCurTime() As Currency
        Static s_IsInit As Long
        Static s_Frequency As Currency
        
        If s_IsInit = 0 Then '未初始化
            If QueryPerformanceFrequency(s_Frequency) = 0 Then
                s_IsInit = -1 '无高精度计数器
            Else
                s_IsInit = 1
            End If
        End If
        
        If s_IsInit > 0 Then
            Dim CurCount As Currency
            Call QueryPerformanceCounter(CurCount)
            GetCurTime = CurCount * 1000@ / s_Frequency
            'Debug.Print GetCurTime
        Else
            GetCurTime = GetTickCount()
        End If
        
    End Function
      

  10.   

    // daisy8675(莫依) 朋友,
    我感觉你技术还行,可刚在你的一个回复里看见你才挣2K,我感觉有说不出来的感觉。唉,计算机技术,爱你在心钱难挣。我是搞销售的,可是公司都靠关系搞项目。行业整体技术人员80%与其他行业相比
    收入处于偏低,该何去何从呢!!!!!!!!!!!!!!!!!!!!!!!
      

  11.   

    //wxf0204(网泥) 现在大部分公司销售的地位不如技术人员。
      

  12.   

    因为,1,我才工作一年,我最开始第一个月才拿400块,呵呵~~还没有我中学时候给别人打工三天拿的多。2 ,因为我是在女生,女程序员工资一向就比男的底。3。因为tw工资就只可能给这么点了,呵呵~~老大曾经送我句话:工作是为了开心,不是为了钱。其实刚选择离开tw的企业,是因为那边实在不自由,我想自由的使用喜欢的工具,我不想自己遇见瓶颈,其实现在大部分公司是销售人员要比程序人员要好,拿我同学打比较,她每个月大概都是4。5K了,呵呵~~我想楼主应该比我大的,所以其中很多话就不说了,只是想做任何的事情,都用心的去做,那么做过以后不会后悔的。学习一门语言要不浮躁的学习,从最基本的学起,才会成为塌实的高手的:)
      

  13.   

    大学开始自学编程,那时用TC2,用了两年多,正在自己觉得有点感觉的时候,又出来了WAINDOWS,一下子就傻啦。俺又被打回原型啦。于是准备趁热打铁学C++,谁知道看了一个星期,发现这个语言奇罗嗦无比,特别是头文件的引用,简直是一场大灾难。于是降低标准,随手找了个VFP,玩了一个月又发现这个东西低能无比,一个月都找不到一本书教人如何定义变量,觉得这个不是能用来写程序的东西。于是又看到了VB,用着用着,感觉还行。和上面有位朋友说的一样,就是从事件,方法,属性开始学的。幸运的是当时手头正好借到一本《VB5从入门到精通》,说到这里,我又忍不住要夸奖一番了,这本书确实是入门者的经典书啊。比起后来我看过的所有国产的那些骗钱的玩意儿要好得多了。这本书没有什么废话,也不会花100页来教你如何安装VB。从头到底不用一个API,完全靠VB自己的功能来实现全部的功能。或许我现在编程的方法就是受到这本书很大的影响,我也是能不用API就不用API,能不用控件就不用控件。可惜后来书也还了,也没有找到地方买。
    到现在我用VB已经有五年了,精通谈不上,熟练还是可以说吧。其间写了很多程序,回头看看以前的程序,很明显的感觉到了自己在进步。
    以前好些一起和我学编程的朋友差不多都作别的行业去了,现在我的朋友中只有我一个人还在写程序。
    不过还好我幸运地找到了CSDN的这个论坛,看到了这么多和我一样喜欢写程序的朋友,再也不感到孤单了。
      

  14.   

    事件,方法,属性!三天就明白了。如果深入钻研机制原理,肯定需要了解Windows核心编程。
      

  15.   

    //daisy8675(莫依) 愿闻高论。如果你指的是自己做COM,那我是不明白了。