精华内容
下载资源
问答
  • vbconst与dim区别?

    千次阅读 2018-11-19 13:10:47
    1.vb中国const源于constant,意思为不变,常量。用const声明的是固定的整数,字符串 2.但是dim不同,dim声明后,redim可以进行重置,声明的是变量

    1.vb中const源于constant,意思为不变常量。用const声明的是固定的整数,字符串
    2.但是dim不同,dim声明后,redim可以进行重置,声明的是变量

    展开全文
  • VB动态加载纯DLL资源

    万次阅读 2005-03-16 08:53:00
    VB 动态调用资源 DLL     调用很简单,源码如下 : '************************************************************************* '** 叶帆源码 CSDN:yefanqiu '**------------------------------------...

    一、纯DLL资源的制作

               打开VC6.0 创建一个基于win32的动态链接库

     

    下一步中,要选择A sinmple Dll project

                 然后加载资源(注意对于超过256色的位图,VC不能编辑,不过这没关系)

        

        

    可以加载位图、图标、字符串等,这是加载后的情况

     

     

     资源添加完毕后,编译。(最好设为发布模式)

    这样,一个纯资源DLL就编译完毕了。

     二、VB动态调用资源DLL

               调用很简单,源码如下:

    '*************************************************************************
    '**                   叶帆源码     CSDN:yefanqiu
    '**-----------------------------------------------------------------------
    '**叶帆Blog:http://blog.csdn.net/yefanqiu
    '*************************************************************************
    Option Explicit

    Private Const IDS_STRING1     As Long = 1
    Private Const IDS_STRING2     As Long = 2
    Private Const IDS_STRING3     As Long = 3
    Private Const IDI_ICON1       As Long = 101
    Private Const IDB_BITMAP1     As Long = 102
    Private Const IDB_BITMAP2     As Long = 103

    Private Const DST_BITMAP = 4
    Private Const OBJ_BITMAP = 7

    '位图结构
    Private Type BITMAPINFOHEADER '40 bytes
            biSize As Long
            biWidth As Long
            biHeight As Long
            biPlanes As Integer
            biBitCount As Integer
            biCompression As Long
            biSizeImage As Long
            biXPelsPerMeter As Long
            biYPelsPerMeter As Long
            biClrUsed As Long
            biClrImportant As Long
    End Type
    Private Type RGBQUAD
            rgbBlue As Byte
            rgbGreen As Byte
            rgbRed As Byte
            rgbReserved As Byte
    End Type
    Private Type BITMAPINFO
            bmiHeader As BITMAPINFOHEADER
            bmiColors As RGBQUAD
    End Type

    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
    Private Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long
    Private Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As Long) As Long
    Private Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long
    Private Declare Function GetObjectType Lib "gdi32" (ByVal hgdiobj As Long) As Long
    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
    Private Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

    '*************************************************************************
    '**函 数 名:LoadRes
    '**输    入:无
    '**输    出:无
    '**功能描述:资源加载
    '**全局变量:
    '**调用模块:
    '**作    者:叶帆
    '**日    期:2005-03-15 12:27:34
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Private Sub LoadRes()
        Dim hRes As Long
        Dim strData As String
        Dim hBmp As Long
        Dim hIcon As Long
        Dim bitBmp As BITMAPINFO
      
        '加载DLL
        hRes = LoadLibrary(Combo1.Text)
             
        '字符串
        strData = Space(255)
        LoadString hRes, IDS_STRING1, strData, 255
        Label1(0).Caption = Trim(strData)
       
        strData = Space(255)
        LoadString hRes, IDS_STRING2, strData, 255
        Label1(1).Caption = Trim(strData)

        strData = Space(255)
        LoadString hRes, IDS_STRING3, strData, 255
        Label1(2).Caption = Trim(strData)
          
        '位图
        hBmp = LoadBitmap(hRes, IDB_BITMAP1)
        If GetObjectType(hBmp) = OBJ_BITMAP Then
          GetObject hBmp, Len(bitBmp), bitBmp
          DrawState Picture1(0).hDC, 0, ByVal 0, hBmp, 0, 0, 0, bitBmp.bmiHeader.biWidth, bitBmp.bmiHeader.biHeight, DST_BITMAP
        End If
       
        '图标
        hIcon = LoadIcon(hRes, IDI_ICON1)
        DrawIcon Picture1(1).hDC, 0, 0, hIcon
       
        '释放资源
        DeleteObject hBmp
        DeleteObject hIcon
       
        '释放DLL
        FreeLibrary hRes
    End Sub

    '*************************************************************************
    '**函 数 名:Combo1_Click
    '**输    入:无
    '**输    出:无
    '**功能描述:更换DLL
    '**全局变量:
    '**调用模块:
    '**作    者:叶帆
    '**日    期:2005-03-15 12:28:49
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Private Sub Combo1_Click()
       LoadRes
    End Sub

    '*************************************************************************
    '**函 数 名:Form_Load
    '**输    入:无
    '**输    出:无
    '**功能描述:初始化
    '**全局变量:
    '**调用模块:
    '**作    者:叶帆
    '**日    期:2005-03-15 12:28:58
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Private Sub Form_Load()
        Combo1.ListIndex = 0
        LoadRes
    End Sub

    '*************************************************************************
    '**函 数 名:Picture1_Paint
    '**输    入:Index(Integer) -
    '**输    出:无
    '**功能描述:刷新
    '**全局变量:
    '**调用模块:
    '**作    者:叶帆
    '**日    期:2005-03-15 12:29:03
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Private Sub Picture1_Paint(Index As Integer)
        LoadRes
    End Sub

            运行后的界面:

      

      运行后的界面:

      

         源码下载地址:http://www.sky-walker.com.cn/yefan/sourcecode/dllres.rar

     

    展开全文
  • VB编程:巧用常量定义数组-37

    千次阅读 2016-12-02 10:17:44
    运行效果: 程序代码: ...Private Const general = 5 Private Sub Command1_Click()  Dim myarray(general - 1) As Integer  For i = 0 To general - 1    myarray(i) = Int(Rnd * 90) + 5    P...
    运行效果:
    VB编程:巧用常量定义数组-37


    程序代码:
    Private Const general = 5
    Private Sub Command1_Click()
        Dim myarray(general - 1) As Integer
        For i = 0 To general - 1
            myarray(i) = Int(Rnd * 90) + 5
            Print myarray(i)
        Next i
    End Sub

    展开全文
  • lonefox转注:本文转自 http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html=================================关键字:ConstConst函数,Const变量,函数后面...
     
    
    =================================
    关键字:Const,Const函数,Const变量,函数后面的Const

     

    看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。

    const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。

    1.用const 修饰函数的参数

    如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数:

    如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。

    例如StringCopy 函数:

    void StringCopy(char *strDestination, const char *strSource);

    其中strSource 是输入参数,strDestination 是输出参数。给strSource 加上const修饰后,如果函数体内的语句试图改动strSource 的内容,编译器将指出错误。

    如果输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const 修饰。

    例如不要将函数void Func1(int x) 写成void Func1(const int x)。同理不要将函数void Func2(A a) 写成void Func2(const A a)。其中A 为用户自定义的数据类型。

    对于非内部数据类型的参数而言,象void Func(A a) 这样声明的函数注定效率比较底。因为函数体内将产生A 类型的临时对象用于复制参数a,而临时对象的构造、复制、析构过程都将消耗时间。

    为了提高效率,可以将函数声明改为void Func(A &a),因为“引用传递”仅借用一下参数的别名而已,不需要产生临时对象。但是函数void Func(A &a) 存在一个缺点:

    “引用传递”有可能改变参数a,这是我们不期望的。解决这个问题很容易,加const修饰即可,因此函数最终成为void Func(const A &a)。

    以此类推,是否应将void Func(int x) 改写为void Func(const int &x),以便提高效率?完全没有必要,因为内部数据类型的参数不存在构造、析构的过程,而复制也非常快,“值传递”和“引用传递”的效率几乎相当。

    问题是如此的缠绵,我只好将“const &”修饰输入参数的用法总结一下。

     

    对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const 引用传递”,目的是提高效率。例如将void Func(A a) 改为void Func(const A &a)。

     

    对于内部数据类型的输入参数,不要将“值传递”的方式改为“const 引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。

    2 用const 修饰函数的返回值
    如果给以“指针传递”方式的函数返回值加const 修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。例如函数
    const char * GetString(void);
    如下语句将出现编译错误:
    char *str = GetString();
    正确的用法是
    const char *str = GetString();
    如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。
    例如不要把函数int GetInt(void) 写成const int GetInt(void)。
    同理不要把函数A GetA(void) 写成const A GetA(void),其中A 为用户自定义的数据类型。
    如果返回值不是内部数据类型,将函数A GetA(void) 改写为const A & GetA(void)的确能提高效率。但此时千万千万要小心,一定要搞清楚函数究竟是想返回一个对象的“拷贝”还是仅返回“别名”就可以了,否则程序会出错。
    函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。

    例如:
    class A
    {
    A & operate = (const A &other); // 赋值函数
    };
    A a, b, c; // a, b, c 为A 的对象

    a = b = c; // 正常的链式赋值
    (a = b) = c; // 不正常的链式赋值,但合法
    如果将赋值函数的返回值加const 修饰,那么该返回值的内容不允许被改动。上例中,语句 a = b = c 仍然正确,但是语句 (a = b) = c 则是非法的。
    3 const 成员函数
    任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。
    class Stack
    {
    public:
    void Push(int elem);
    int Pop(void);
    int GetCount(void) const; // const 成员函数
    private:
    int m_num;
    int m_data[100];
    };
    int Stack::GetCount(void) const
    {
    ++ m_num; // 编译错误,企图修改数据成员m_num
    Pop(); // 编译错误,企图调用非const 函数
    return m_num;
    }
    const 成员函数的声明看起来怪怪的:const 关键字只能放在函数声明的尾部,大概是因为其它地方都已经被占用了。
    关于Const函数的几点规则:

    a. const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数.
    b. const对象的成员是不可修改的,然而const对象通过指针维护的对象却是可以修改的.
    c. const成员函数不可以修改对象的数据,不管对象是否具有const性质.它在编译时,以是否修改成员数据为依据,进行检查.
    e. 然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的

    展开全文
  • Private Const PROCESS_QUERY_INFORMATION = &H400 Private Const STATUS_PENDING = &H103 Private Const SYNCHRONIZE = &H100000 Private Const INFINITE = &HFFFFFFFF Sub Main() Dim tmpId As Long ...
  • Private Sub Command1_Click() Const pi = 3.1415966 '定义常量pi s = pi * Val(Text1.Text) ^ 2 Debug.Print s      'Debug立即窗口输出s的计算结果 End Sub ...
  • const对象不能被引用

    2012-04-27 14:10:16
    例如: class cl { public: inline cl(){} inline cl(int a){ this->a = a; } int getA(){ return a; } void copy(cl &c2){ a = c2.a; } private: int a; }; ...const int a = 10;
  • VB中的变量和数组

    千次阅读 2011-01-12 18:54:00
    <br />vb中的变量:Boolean(2)/Byte(1)/Integer(%2)/ Long(&4)/Single(!4)精度不够/Double(#8)精度高/ String($长度可变)/Date(8#...#)/Currency(@8现金)/ Object(对象)/Variant(可变不声明变量) 类型...
  • 颜色值转换(RGB与VB十六进制)

    热门讨论 2012-05-16 11:51:23
    颜色值转换(RGB与VB十六进制),在程序开发中经常要用的设置界面颜色,但是用函数非常麻烦,而且增加代码量,所以就开发了这个可以转换的工具
  • VB自动注册DLL文件

    千次阅读 2012-12-26 15:37:48
    Const A = 10 Const B = 5 Private Sub Command1_Click() Dim oMathLib As New Class1 Dim r As Integer MsgBox oMathLib.Add(A, B) End Sub Private Sub Command2_Click()'uninstall Shell "cmd /c RegSvr32 /u /
  • 代码: Public Const WM_NULL = &amp;H0 '空消息Public Const WM_NCCREATE = &amp;H81 '当窗口第一次被创建时,此消息在WM_CREATE消息发送前发送Public Const WM_CREATE = &amp;H1 '窗口被创建时发送到...
  • vb代码-在 VB.Net 中的编译器指令 The #Const 指令 The #ExternalSource 指令 The #If...Then...#Else 指令 The #Region 指令
  • VB_改变内存中变量的值

    千次阅读 2008-08-08 10:54:00
    Const  SPECIFIC_RIGHTS_ALL =  Private   Const  STANDARD_RIGHTS_ALL =  Private   Const  PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED  Or  SYNCHRONIZE  Or   Private   Const  ...
  • VB递归遍历目录文件2

    2008-12-11 18:14:42
    vb"] Option Explicit Private Const SYNCHRONIZE = &H100000 Private Const INFINITE = &HFFFFFFFF Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As...
  • 说说使用static和const关键字

    千次阅读 2004-09-20 09:22:00
    static和const两个关键字,好像都是跟静态有关,初学时易于混淆不算,实际用的时候也是能不用就不用,反正用这两个关键字的机会也少,而且不用也可以,呵呵,这种想法也不是我一个人有的,几乎所有人这么做时也不是想了想才...
  • VB有两种截图方式

    千次阅读 2018-11-07 21:42:22
    Private Const SRCCOPY = &HCC0020 Sub saveMyScreen()  Dim lngDesktopHwnd As Long  Dim lngDesktopDC As Long  Picture1.AutoRedraw = True  Picture1.ScaleMode = vbPixels  ...
  • 精彩编程与编程技巧-在VB中使用枚举变量 ...
  • 控制光驱的自动运行功能(VB6.0源代码编写)Const REG_DWORD As Long = 4 Const HKEY_LOCAL_MACHINE = &H80000002 Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey...
  • 《C++primer》中,讲到头文件中不可以包含定义,有三个例外:类,常量表达式初始化的const对象,inline。 对于不是用常量表达式初始化的const对象,可以加上extern放在源文件中,并在头文件中加上extern声明。 ...
  • Private Sub Command1_Click() Const pi = 3.1415966 '定义常量pi s = pi * Val(Text1.Text) ^ 2 Debug.Print s 'Debug立即窗口输出s的计算结果 End Sub ...
  • [VB.NET] 设置 全局热键

    千次阅读 2011-01-11 19:03:00
     Public Class Form1  Public Const WM_HOTKEY = &H312  Public Const MOD_ALT = &H1  Public Const MOD_CONTROL = &H2  Public Const MOD_SHIFT = &H4  Public Const
  • v4l2的结构体之videobuf2(vb2) 简介 videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buffer 分配、入队、出队和数据流控制...
  • 本问题已经有最佳答案,请猛点这里访问。我试图了解为什么以下字符串传递适用于我的...这是因为它是const char *还是因为我正在打印到stderr?我可能会用错的措词来表达问题,这就是为什么搜索没有帮助我理解这一...
  • VB调用系统的"打印机设置"和"页面设置". Option Explicit Const FW_NORMAL = 400 Const DEFAULT_CHARSET = 1 Const OUT_DEFAULT_PRECIS = 0 Const CLIP_DEFAULT_PRECIS = 0 Const DEFAULT_QUALITY = 0 Const D
  • Private Const GW_HWNDNEXT = 2 Private m_Hwnd As Long Private Sub Form_Load()  Dim dblPid As Long  Call LockWindowUpdate(GetDesktopWindow)  dblPid = Shell("c:\windows\notepad.exe", vbNormalFocus) ...
  • vb 窗体透明效果(控件不透明)

    万次阅读 2012-02-06 17:46:05
    Private Const WS_EX_LAYERED = &H80000 Private Const GWL_EXSTYLE = (-20) Private Const LWA_ALPHA = &H2 Private Const LWA_COLORKEY = &H1 Private Sub Form_Load() Me.BackColor = &HFF0000 Dim ...
  • VB 判定程序是否已经结束

    千次阅读 2012-08-04 22:31:47
    Private Const NORMAL_PRIORITY_CLASS = &H20 '如果进程位于前台,则基本值是9;如果在后台,则优先值为7 Private Const INFINITE = &HFFFFFFFF Private Const WAIT_TIMEOUT = &H102& '对象保持未发出信号的状态...
  • 一、const对象 1.同定义一般的const变量一样,也可以利用const关键字来定义对象。例如: const fraction dt1(1, 4); 它表示dt1对象被初始化以后将不能再改变了。 2.将对象定义为const以后,如果不对类的成员...
  • TCHAR 与const wchar_t *等的转换

    千次阅读 2013-01-30 16:15:20
    TCHAR 与const wchar_t *等的转换 ...TCHAR 转换为const ...BSTR:是一个OLECHAR*类型的Unicode字符串,是一个COM字符串,带长度前缀,与VB有关,没怎么用到过。  LPSTR:即 char *,指向以'/0'结尾的8位

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,162
精华内容 8,864
关键字:

vb里const