vb怎么写dll
1.怎样用VB编写标准dll
1、首先创建一个DLL工程,如图:2、然后新建一个类模板,如图:3、在类模板输入代码(代码是网上随便找的),如图:4、然后修改一下工程的名称,为了方便使用。
这里我自己修改为ANigag,如图:5、修改好以后就进行一下设置,这个很最要,是关于DLL的接口的,以前VB编译出来的DLL工程文件是没有接口的,只能先注册该DLL,然后才在工程里面引用,这样很麻烦,尤其是在别的电脑上用是很费劲的事情,也很伤脑筋。(1)首先点击:【工程】-【属性】 (2)选择:【扩展】项,如图,把【导出函数表】和【入口函数】这个两个项打上勾,不打勾你编译出的DLL就没有什么效果了。
(3)然后编译,编译的效果如图:6、做这些以后,就编译出标准的DLL动态链接库文件了。然后我们新建一个工程引用。
代码如下:'在类模板代码 Public Declare Function Attach Lib"C:\Documents and Settings\Administrator\桌面\好看的空间特效-DLL版\ANigag.dll" (ByVal hwnd As Long) As Long'窗体代码 Private Sub Form_Load() Call Attach(Me.hwnd) End Sub' 如图:7、最终效果,如图:。
2.怎样用VB编写DLL文件
你先打开VB,然后先中“ActiveX Dll”工程,然后开始编辑。编完后,保存一般是以“.cls”和“.vbw”保存。这时你选择“文件”菜单,弹出下拉框,选中“生成.dll”选项,它就会在上面弹出一个进度条“正在生成.dll文件”。生成以后是一个有好象齿轮状的图标。
如果你要引用,就开一个“标准EXE”工程,然后在“工程”选项中,单击“引用”,找到你刚才的“.dll”的文件名,在前面的复选框中打勾,就可以引用你刚才在那里面写的方法等。
3.用VB怎么样做DLL文件
vb中制作dll的方法:新建时选择ActiveX Dll
工程名改为add 把类模块命名为:myfirstdll (原名为class1)然后就可以写你的dll内容了,比如封装一个函数,这里我们封装一个从1加到n的函数:
Public Function AddN(ByVal n As Integer) As Integer
Dim i As Integer
Dim sum As Integer
For i = 0 To n
sum = i + sum
Next
AddN = sum
End Function
完成保存工作后,选择“文件”——“生成add.dll”
这样一个简单的dll完成了。你可以添加多个函数,复杂度任意!这只是以个简单的例子
下面是调用部分:
假设你有已经有了一个工程,现在需要引用刚才的dll文件。
选择“工程”-“引用”,在弹出的对话框中选浏览,选择你刚才生成的add.dll。点确定。如果说出现工程名称重复之类的提示,那是因为你的这个工程,和dll文件的工程名称一样了!你改一下工程名就行了,所以不要在新建工程时偷懒,默认的名称“工程1”会引起不必要的麻烦啊!下面是代码
在声明部分(就是代码的最上面)写:
Dim testdll As myfirstdll
form的load事件里写:
Set testdll = New myfirstdll
引用完成了
调用的代码:
MsgBox (testdll.AddN(5))
4.VB如何调用dll
在调用自己写的dll之前,想来看看VB是如何调用API的:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Command1_Click()
Dim Hwnd As Long
Hwnd = FindWindow(vbNullString, "Form1")
If Hwnd <> 0 Then
Debug.Print "窗口的句柄为:" & Hwnd
Else
Debug.Print "参数设置错误或者程序异常"
End If
End Sub以上代码就实现了调用FindWindow API 获取窗口标题为“Form1”的句柄,那么,如何调用自己写dll呢?其实,了解过API的同学都知道,API是封装在dll里面的。看到这里还是不懂如何调用dll?别怕,先分析下上面的API声明。
(以下片段来自网友)
经过上面,我们知道如何添加API,接着我们分析一下API声明,这是你了解API必备的。首先看第一个单词Private,很显然,我上面刚刚讲过,这是申明一个私有的API变量。再看第二个Declare,这个单词帮我们告诉VB是在申明API函数,一般申明外在的API函数时都必须带上这个单词。第三个Sub,别告诉我你不知道什么意思?这就是我叫你先学习VB中过程函数的意思,这个说白了就是没有反回值,一般如果不是Sub而是Function都带有反回值的。第四个Lib,这个是告诉VB我们要声明哪一个DLL中的API函数,也就是告诉VB我们要申明第五个单词kernel32.dLL中的API,一般写DLL名称时都要用双引号括起来,如"user32"、"shell32.dll"等,至于后面的.dll这个可以带可不带。再来看第六个Alias,这个也是需要同后面一个一起用的,我们应该把第六个和第七个连起来一起看Alias "Sleep"(这里对应上面的Alias "FindWindowA"
),这个意思表示将被调用的过程在DLL中还有另外的名称,这个是可选的。最后括号里面的,也就是和过程函数一样,你传入相应的值就可以了。
看到这里,知道该怎么用了吧?
还是不太懂?好吧!请往下看:
假设a.DLL在C盘根目录,c和d都是长整形,私有声明如下
Private Declare Function b Lib "c:\a.dll"_
(ByVal c As Long, ByVal d As Long) As Long
调用:Data1=b(2,3)
好了。
如果上面从网友那里摘抄来的看不懂的话请追问,满意请采纳!
5.怎样用VB编写标准dll
1、首先创建一个DLL工程,如图: 2、然后新建一个类模板,如图: 3、在类模板输入代码(代码是网上随便找的),如图: 4、然后修改一下工程的名称,为了方便使用。
这里我自己修改为ANigag,如图: 5、修改好以后就进行一下设置,这个很最要,是关于DLL的接口的,以前VB编译出来的DLL工程文件是没有接口的,只能先注册该DLL,然后才在工程里面引用,这样很麻烦,尤其是在别的电脑上用是很费劲的事情,也很伤脑筋。 (1)首先点击:【工程】-【属性】 (2)选择:【扩展】项,如图,把【导出函数表】和【入口函数】这个两个项打上勾,不打勾你编译出的DLL就没有什么效果了。
(3)然后编译,编译的效果如图: 6、做这些以后,就编译出标准的DLL动态链接库文件了。然后我们新建一个工程引用。
代码如下: '在类模板代码 Public Declare Function Attach Lib"C:\Documents and Settings\Administrator\桌面\好看的空间特效-DLL版\ANigag.dll" (ByVal hwnd As Long) As Long '窗体代码 Private Sub Form_Load() Call Attach(Me.hwnd) End Sub' 如图: 7、最终效果,如图: 。
6.怎样用VB编写.DLL动态链接库文件
新建DLL文件:打开vb6.0,然后在新建工程窗口中选择“ActiveX DLL”(如左图),或点击vb窗体左上角的“文件”,再点击“新建工程”,选择“ActiveX DLL”
保存文件到本地,防止编写过程中出错,代码丢失:点击”文件“,再点击”保存工程“,选择存储路径后点“确定”;同样在代码编写中要时刻注意保存代码
修改工程名称和类模块名称:工程名称是你编写完成后,引用者在vb窗体中引用对象的名称,类模块名称是代码中引用的对象的名称
编写DLL文件的代码:以下仅为示例
编译成DLL格式文件,DLL文件就制作成功啦:点击“文件”,再点击“生成****.dll”,选择存储路径,点“确定”
DLL文件如何引用:使用者只需要在vb点击“工程”,再点击“引用”,就可以引用这个dll啦!
vb的代码怎么写
1. VB这些代码怎么写
先假定的窗口1名称是form1,窗口2名称是form2。
如果不是自己改之1:点击一个按钮弹出窗口2(弹出后关闭窗口1)点击后的代码:Form2.Show '显示窗口2Unload Me '关闭窗口12:点击一个按键后进度条慢慢的满,同时,标签的内容启动切换(一共分10个内容,周期是1秒)。当进度条满时,自动跳到窗口3。
先添加进度条ProgressBar1和定时器Trimer1,标签Label1代码:Private Sub Form_Load()Timer1.Interval = 1000ProgressBar1.Max = 100ProgressBar1.Value = 0End SubPrivate Sub Timer1_Timer()If ProgressBar1.Value = 100 Then Form3.Show '显示窗口3 Timer1.Enabled = FalseElse ProgressBar1.Value = ProgressBar1.Value + 1 Select Case (ProgressBar1.Value Mod 10) '显示不同的标签10种 Case 0 Label1.Caption = "0" Case 1 Label1.Caption = "1" Case 2 Label1.Caption = "2" Case 3 Label1.Caption = "3" Case 4 Label1.Caption = "4" Case 5 Label1.Caption = "5" Case 6 Label1.Caption = "6" Case 7 Label1.Caption = "7" Case 8 Label1.Caption = "8" Case 9 Label1.Caption = "9" End SelectEnd IfEnd Sub3:窗口4上有一个标签,每2秒更换1个内容,共5个内容,当内容更换完后,自动跳到其他的窗口。这些代码怎么写?悬赏80.先添加定时器Trimer1,标签Label1,窗口变量TDim t As LongPrivate Sub Form_Load()t = 0Timer1.Interval = 1000Label1.Caption = "0"End SubPrivate Sub Timer1_Timer()t = t + 1 Select Case (t Mod 5) Case 0 Label1.Caption = "0" Case 1 Label1.Caption = "1" Case 2 Label1.Caption = "2" Case 3 Label1.Caption = "3" Case 4 Label1.Caption = "4" Case 5 Timer1.Enabled = False '其它要显示的窗口 要显示的窗口.show '其它要显示的窗口 unload me '关闭自己 End SelectEnd Sub。
2. vb代码怎么写
首先在Combo1的List属性中加入"a","b","c"
Combo1.click事件中加入代码:
ID = Combo1.List(Combo1.ListIndex())
Select Case ID
Case "a"
Text1.Text = "111"
Case "b"
Text1.Text = "222"
Case "c"
Text1.Text = "333"
Case Else
End Select
3. 关于vb的程序代码怎么写
'能产生霓虹灯效果的代码'在窗体上添加控件 Picture1、Timer1'在窗体上添加控件 Shape1,并在属性窗口设置 Shape1 的属性 Name=Sha , Index=0'在窗体上添加控件 Combo1,并在属性窗口设置 Combo1 的属性 Name=Comb , Index=0'将以下代码添加到窗体代码中 Dim ctP As Single, ctLei As Long, ctX0 As Single, ctY0 As Single, ctSize As Single Dim ctRefresh As Boolean, ctA As Single, ctB As Single, ctX1 As Single, ctY1 As Single Private Sub Form_Load() Dim I As Long, K As Long Me.Caption = "闪光函数" Set Sha(0).Container = Picture1 Sha(0).Visible = False: Timer1.Enabled = False Picture1.AutoRedraw = True For I = 1 To 3 Load Comb(I): Comb(I).Visible = True Next K = 0 For I = 0 To 19 If I < 10 Then Comb(K).AddItem I & " 个光点" Else Comb(K).AddItem (I - 9) * 10 & " 个光点" Next Comb(K).ListIndex = 10 K = 1 Comb(K).List(0) = "圆" Comb(K).List(1) = "椭圆" Comb(K).List(2) = "正弦" Comb(K).ListIndex = 1 K = 2 For I = 0 To 29 If I < 10 Then Comb(K).AddItem I & " 变速" Else Comb(K).AddItem (I - 9) * 10 & " 变速" Next Comb(K).ListIndex = 15 K = 3 For I = 0 To 9 Comb(K).AddItem I & " 线宽" Next Comb(K).ListIndex = 1 ctRefresh = True Call StartFlash End Sub Private Sub Form_Resize() Dim I As Long, L As Single, T As Single, W As Long, H As Long, Jg As Single Jg = Comb(0).Height * 0.2 T = Jg L = Jg For I = 0 To Comb.Count - 1 Comb(I).Move L, T L = L + Comb(I).Width + Jg Next T = Comb(0).Top + Comb(0).Height + Jg W = Me.ScaleWidth: H = Me.ScaleHeight - T Picture1.Move 0, T, W, H Call SetXY0 End Sub Private Sub SetXY0() ctA = Picture1.ScaleHeight * 0.4 '短轴 ctB = Picture1.ScaleWidth * 0.4 '长轴 Select Case ctLei Case 0, 1 '圆,椭圆 ctX0 = Picture1.ScaleWidth * 0.5 - ctSize: ctY0 = Picture1.ScaleHeight * 0.5 - ctSize Case 2 '正弦 ctX0 = Picture1.ScaleWidth * 0.05 - ctSize: ctY0 = Picture1.ScaleHeight * 0.5 - ctSize ctB = ctB * 1.1 End Select End Sub Private Sub Comb_Change(Index As Integer) Call StartFlash End Sub Private Sub Comb_Click(Index As Integer) Call StartFlash End Sub Private Sub StartFlash() Dim I As Long If Not ctRefresh Then Exit Sub ctLei = Comb(1).ListIndex '函数类型 ctP = 3.1415926 '圆周率 ctY1 = Val(Comb(2).Text) '短轴变换率(半径,位置等) ctX1 = ctY1 I = Val(Comb(3).Text) If I < 1 Then I = 1 If I > 9 Then I = 9 Picture1.DrawWidth = I If I < 5 Then I = 5 ctSize = I * 15 '60 '光点大小 Sha(0).FillColor = 255 '&HFFFFFF Call SetXY0 Timer1.Tag = "1" Timer1.Interval = 25 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Static n As Single, Ci As Long Dim X As Single, Y As Single, S As Single If Timer1.Tag <> "" Then Call LoadSha ctA = ctA + ctY1 If ctA > ctY0 Then ctY1 = -Abs(ctY1) If ctA <= 0 Then ctY1 = Abs(ctY1) ctB = ctB + ctX1 If ctLei = 2 Then '正弦 If ctB > Picture1.ScaleWidth * 0.45 Then ctX1 = -Abs(ctX1) Else If ctB > ctX0 Then ctX1 = -Abs(ctX1) End If If ctB <= 0 Then ctX1 = Abs(ctX1) Picture1.Cls If Val(Comb(3).Text) > 0 Then Call GetXY(0, X, Y) Picture1.PSet (X, Y) For S = 0 To ctP * 2 Step ctP / 270 Call GetXY(S, X, Y) Picture1.Line -(X, Y) Next End If n = n + ctP / 90 '180 If n > ctP * 2 Then n = 0 For I = 0 To Sha.Count - 1 S = n + I * ctP * 2 / Sha.Count If S > ctP * 2 Then S = S - ctP * 2 Call GetXY(S, X, Y) Sha(I).Move X - ctSize, Y - ctSize, ctSize * 2, ctSize * 2 Next' Timer1.Tag = "" End Sub Private Sub GetXY(n As Single, X As Single, Y As Single) Select Case ctLei Case 0 '圆 X = ctX0 + ctA * Sin(n) Y = ctY0 + ctA * Cos(n) Case 1 '椭圆 X = ctX0 + ctB * Sin(n) Y = ctY0 + ctA * Cos(n) Case 2 '正弦 X = ctX0 + n * ctB / ctP Y = ctY0 - ctA * Sin(n) End Select End Sub Private Sub LoadSha() Dim I As Long, S As Long Timer1.Tag = "" S = Val(Comb(0).Text) Sha(0).Shape = 3: Sha(0).Move 0, 0, ctSize, ctSize Sha(0).FillStyle = 0 If S > 0 Then Sha(0).Visible = True Else Sha(0).Visible = False For I = Sha.Count - 1 To 1 Step -1 Unload Sha(I) Next For I = 1 To S - 1 '光点数 Load Sha(I): Sha(I).Visible = True Next End Sub。
怎么写vb代码
1. vb代码怎么写
首先在Combo1的List属性中加入"a","b","c"
Combo1.click事件中加入代码:
ID = Combo1.List(Combo1.ListIndex())
Select Case ID
Case "a"
Text1.Text = "111"
Case "b"
Text1.Text = "222"
Case "c"
Text1.Text = "333"
Case Else
End Select
2. VB添加代码怎么写
insert into card_user(字段1,字段2,。..)value('"& text1.text &"','"& text2.text &"')
这句代码是把text1内容作为字段1添加到表card_user
不知道你用的什么库和数据库表的结构. 如果Private Sub XPButton3_Click()作为添加事件的话. 结构应该是这样,具体代码你自己加 Private Sub XPButton3_Click() 打开数据库连接 打开数据库表 数据库表添加(insert into card_user(字段1,字段2,。..)value('"& text1.text &"','"& text2.text &"',。..)) 关闭数据库表 关闭数据库连接 End Sub
3. 这个vb代码怎样写
楼上2位,题目要求是直到前后两项之差小于10^(-5)为止,而不是输入n的值来求。
Private Sub Command1_Click()
Dim i As Integer
Dim f As Double
Dim e As Double
i = 1
f = 1
e = 2
Do
i = i + 1
f = f / i
e = e + f
Loop While (f * i - f) >= 10 ^ -5
Print e
End Sub
4. 关于vb的程序代码怎么写
'能产生霓虹灯效果的代码'在窗体上添加控件 Picture1、Timer1'在窗体上添加控件 Shape1,并在属性窗口设置 Shape1 的属性 Name=Sha , Index=0'在窗体上添加控件 Combo1,并在属性窗口设置 Combo1 的属性 Name=Comb , Index=0'将以下代码添加到窗体代码中 Dim ctP As Single, ctLei As Long, ctX0 As Single, ctY0 As Single, ctSize As Single Dim ctRefresh As Boolean, ctA As Single, ctB As Single, ctX1 As Single, ctY1 As Single Private Sub Form_Load() Dim I As Long, K As Long Me.Caption = "闪光函数" Set Sha(0).Container = Picture1 Sha(0).Visible = False: Timer1.Enabled = False Picture1.AutoRedraw = True For I = 1 To 3 Load Comb(I): Comb(I).Visible = True Next K = 0 For I = 0 To 19 If I < 10 Then Comb(K).AddItem I & " 个光点" Else Comb(K).AddItem (I - 9) * 10 & " 个光点" Next Comb(K).ListIndex = 10 K = 1 Comb(K).List(0) = "圆" Comb(K).List(1) = "椭圆" Comb(K).List(2) = "正弦" Comb(K).ListIndex = 1 K = 2 For I = 0 To 29 If I < 10 Then Comb(K).AddItem I & " 变速" Else Comb(K).AddItem (I - 9) * 10 & " 变速" Next Comb(K).ListIndex = 15 K = 3 For I = 0 To 9 Comb(K).AddItem I & " 线宽" Next Comb(K).ListIndex = 1 ctRefresh = True Call StartFlash End Sub Private Sub Form_Resize() Dim I As Long, L As Single, T As Single, W As Long, H As Long, Jg As Single Jg = Comb(0).Height * 0.2 T = Jg L = Jg For I = 0 To Comb.Count - 1 Comb(I).Move L, T L = L + Comb(I).Width + Jg Next T = Comb(0).Top + Comb(0).Height + Jg W = Me.ScaleWidth: H = Me.ScaleHeight - T Picture1.Move 0, T, W, H Call SetXY0 End Sub Private Sub SetXY0() ctA = Picture1.ScaleHeight * 0.4 '短轴 ctB = Picture1.ScaleWidth * 0.4 '长轴 Select Case ctLei Case 0, 1 '圆,椭圆 ctX0 = Picture1.ScaleWidth * 0.5 - ctSize: ctY0 = Picture1.ScaleHeight * 0.5 - ctSize Case 2 '正弦 ctX0 = Picture1.ScaleWidth * 0.05 - ctSize: ctY0 = Picture1.ScaleHeight * 0.5 - ctSize ctB = ctB * 1.1 End Select End Sub Private Sub Comb_Change(Index As Integer) Call StartFlash End Sub Private Sub Comb_Click(Index As Integer) Call StartFlash End Sub Private Sub StartFlash() Dim I As Long If Not ctRefresh Then Exit Sub ctLei = Comb(1).ListIndex '函数类型 ctP = 3.1415926 '圆周率 ctY1 = Val(Comb(2).Text) '短轴变换率(半径,位置等) ctX1 = ctY1 I = Val(Comb(3).Text) If I < 1 Then I = 1 If I > 9 Then I = 9 Picture1.DrawWidth = I If I < 5 Then I = 5 ctSize = I * 15 '60 '光点大小 Sha(0).FillColor = 255 '&HFFFFFF Call SetXY0 Timer1.Tag = "1" Timer1.Interval = 25 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Static n As Single, Ci As Long Dim X As Single, Y As Single, S As Single If Timer1.Tag <> "" Then Call LoadSha ctA = ctA + ctY1 If ctA > ctY0 Then ctY1 = -Abs(ctY1) If ctA <= 0 Then ctY1 = Abs(ctY1) ctB = ctB + ctX1 If ctLei = 2 Then '正弦 If ctB > Picture1.ScaleWidth * 0.45 Then ctX1 = -Abs(ctX1) Else If ctB > ctX0 Then ctX1 = -Abs(ctX1) End If If ctB <= 0 Then ctX1 = Abs(ctX1) Picture1.Cls If Val(Comb(3).Text) > 0 Then Call GetXY(0, X, Y) Picture1.PSet (X, Y) For S = 0 To ctP * 2 Step ctP / 270 Call GetXY(S, X, Y) Picture1.Line -(X, Y) Next End If n = n + ctP / 90 '180 If n > ctP * 2 Then n = 0 For I = 0 To Sha.Count - 1 S = n + I * ctP * 2 / Sha.Count If S > ctP * 2 Then S = S - ctP * 2 Call GetXY(S, X, Y) Sha(I).Move X - ctSize, Y - ctSize, ctSize * 2, ctSize * 2 Next' Timer1.Tag = "" End Sub Private Sub GetXY(n As Single, X As Single, Y As Single) Select Case ctLei Case 0 '圆 X = ctX0 + ctA * Sin(n) Y = ctY0 + ctA * Cos(n) Case 1 '椭圆 X = ctX0 + ctB * Sin(n) Y = ctY0 + ctA * Cos(n) Case 2 '正弦 X = ctX0 + n * ctB / ctP Y = ctY0 - ctA * Sin(n) End Select End Sub Private Sub LoadSha() Dim I As Long, S As Long Timer1.Tag = "" S = Val(Comb(0).Text) Sha(0).Shape = 3: Sha(0).Move 0, 0, ctSize, ctSize Sha(0).FillStyle = 0 If S > 0 Then Sha(0).Visible = True Else Sha(0).Visible = False For I = Sha.Count - 1 To 1 Step -1 Unload Sha(I) Next For I = 1 To S - 1 '光点数 Load Sha(I): Sha(I).Visible = True Next End Sub。
转载请注明出处育才学习网 » vb显示密码的代码怎么写
育才学习网