请问大家如何用VB代码生成一个.dll文件,目前急用请大家帮忙啊在线等待

xinshou1979330 2003-02-19 09:29:17
请问大家如何用VB代码生成一个.dll文件,目前急用请大家帮忙啊在线等待
怎么写这段代码
请朋友们给举例说明一下啊我第一次遇到这个问题
明天就等着用
谢谢大家了
...全文
38 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinshou1979330 2003-02-23
  • 打赏
  • 举报
回复
不论哪种都可以了,后一种在生成后用程序注册一下不就搞定了?
首先你有没有这个dll文件,就是B程序需要的那个dll?
有的话就好办了,找一下前边的贴子,怎么用程序生成文件,我以前做过,程序我不知道放到哪了,是可以的。
----------------------------------------------------------------
原贴内容:
DLL有两种,一种是标准DLL,另一种是ActiveX DLL。前者拷贝到用户机器上就可以工作了,而后者还需要调用DLL中的DllRegisterServer或者使用RegSvr32进行注册才能使用。

朋友们我现在需要的是前一种DLL该怎么做能可以 啊???
谢谢啊
http://expert.csdn.net/Expert/topic/1452/1452906.xml?temp=.4990808
xinshou1979330 2003-02-23
  • 打赏
  • 举报
回复
原贴内容:
http://expert.csdn.net/Expert/topic/1442/1442182.xml?temp=.6525995
关于一个以结帖子的后话
请问ADD2函数的功能是什么???
谢谢
================================================================

r = oMathLib.Add2(3, 2)
MsgBox "3+2=" & r
ADD2就是简单的两数相加函数

我只是举了个简单的例子告诉你如何编写 DLL 文件
编号: 221 发送者 guofengx 发送时间 2003-2-22 21:50:12 删除 回复
内容 我说的意思是,B需要一个dll文件才能运行,而这个文件是由A生成的,所以A可以用二进制文件读写的方法把Dll文件做为一个文件读出来放到程序的资源文件中,然后如果A验证密码正确,就把这个文件以二进制的方式写出来,这样一个dll文件就由A“生成”。就是由程序生成一个文件。

----------------------------------------------------------------
原贴内容:
"以前有这样的方法的,查找一下。就是二进制文件的读写。"

朋友你说的意思是 用fso二进制比较 么???
如果这样我所说的B程序就能随A程序的变化而变化了么???
现在B程序已经生成了一个名为read.txt的文件了啊
这个文件来调用A程序所生成的文件

http://expert.csdn.net/Expert/topic/1452/1452906.xml?temp=.499325
xinshou1979330 2003-02-22
  • 打赏
  • 举报
回复
不明白,dll其实是个函数、对象、或者类,能完成特定的任务,它跟验证文件是不同的,你先答复我,1、如果没有这个dll以及验证程序,B能否运行?2、如果第一个问题是的话,那么dll是随机的还是固定不变的。
----------------------------------------------------------------
原贴内容:
现在B程序已经生成一个文件等待调用A程序要生成的这个DLL
那你说是不是要有接口函数呢???
我是第一次接触这里啊谢谢
----------------------------------------------------------------
http://expert.csdn.net/Expert/topic/1452/1452906.xml?temp=.3736994
nik_Amis 2003-02-20
  • 打赏
  • 举报
回复

Private Sub cmdFile_Click()
Dim sFile As String
With cd
.Filter = "*.dll|*.dll;*.*|*.*"
.ShowSave
sFile = .FileName
End With
If Len(sFile) > 0 Then txtFile.Text = sFile: txtFile.SelStart = Len(sFile)
End Sub

Private Sub cmdRelease_Click()
Dim abDll() As Byte, lCount As Long, lFile As Long, sFile As String
sFile = txtFile.Text
If Len(sFile) < 1 Then MsgBox "Please input output file name!": Exit Sub
abDll = LoadResData("Balloon", "DLL")
lCount = UBound(abDll)
lFile = FreeFile
On Error GoTo ErrRow
Open sFile For Binary Access Write As lFile
Put #lFile, , abDll
Close lFile
Do While Dir(sFile) = "": Loop
MsgBox "File released!"
Shell "regsvr32 " & """" & sFile & """"
GoTo EndRow
ErrRow:
MsgBox Err.Description
EndRow:

End Sub

告诉我你的信箱,如果你想要这个程序完整源码



gzj0815 2003-02-19
  • 打赏
  • 举报
回复
不好意思,这方面我没有涉及到,不过仍感谢你能想起我!
enhydraboy 2003-02-19
  • 打赏
  • 举报
回复
You can use VB to develop ActiveX DLL easily.
nik_Amis 2003-02-19
  • 打赏
  • 举报
回复
不明白,你是要用VB工程做dll,还是通过VB写的程序动态生成一个dll文件
guofu007 2003-02-19
  • 打赏
  • 举报
回复
up
Kivic 2003-02-19
  • 打赏
  • 举报
回复
具体要看用在哪

如果别的程序调用:
创建ActiveX DLL工程,和正常编写程序一样,只不过main要设置参数(也可不用),所有的函数、程序段都要用“公有”

如果用在网页:
直接创建dhtml工程,只不过form尽量隐藏

声明dll时用regsvr32和直接引用相结合
13161795500 2003-02-19
  • 打赏
  • 举报
回复
up
13161795500 2003-02-19
  • 打赏
  • 举报
回复
可以留下信箱我把代码发送给你。如果要问怎么写的上述代码,我要1000分。以上生成的Win95io.dll这个DLL可以使PC的喇叭发不同频率的声音(注意不是音箱),对于制作没有音箱的音乐是非常有用的。
ganzhiruogy 2003-02-19
  • 打赏
  • 举报
回复
我不会,晕◎◎◎◎◎◎
学习中...................................
chenyu5188 2003-02-19
  • 打赏
  • 举报
回复
UP
13161795500 2003-02-19
  • 打赏
  • 举报
回复
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "558BECB801000000837D0C017502EB06"
s = s & "837D0C007500C9C20C008BC0558BEC66"
s = s & "8B5508668B450CEEC9C20800558BEC66"
s = s & "8B5508668B450C66EFC9C208002E8BC0"
s = s & "558BEC668B5508EC2AE4C9C204008BC0"
s = s & "558BEC668B550866EDC9C20400000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000D525E133000000005A200000"
s = s & "01000000050000000500000028200000"
s = s & "3C20000050200000001000001C100000"
s = s & "2C100000401000005010000066200000"
s = s & "6F200000752000007C20000082200000"
s = s & "0000030004000100020057696E393549"
s = s & "4F2E646C6C00444C4C456E7472790076"
s = s & "62496E70007662496E70770076624F75"
s = s & "740076624F7574770000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000D425E1330000000000000100"
s = s & "100000001800008000000000D425E133"
s = s & "00000000000001000100000030000080"
s = s & "00000000D425E1330000000000000100"
s = s & "09040000480000006030000028040000"
s = s & "00000000000000000000000000000000"
s = s & "280434000000560053005F0056004500"
s = s & "5200530049004F004E005F0049004E00"
s = s & "46004F0000000000BD04EFFE00000100"
s = s & "01000100020000000100010002000000"
s = s & "3F000000000000000400040002000000"
s = s & "00000000000000000000000086030000"
s = s & "010053007400720069006E0067004600"
s = s & "69006C00650049006E0066006F000000"
s = s & "62030000010030003400300039003000"
s = s & "340062003000000050001C0001004300"
s = s & "6F006D006D0065006E00740073000000"
s = s & "4700720065006500740069006E006700"
s = s & "73002000660072006F006D0020005300"
s = s & "6F006600740043006900720063007500"
s = s & "69007400730000003A000D0001004300"
s = s & "6F006D00700061006E0079004E006100"
s = s & "6D0065000000000053006F0066007400"
s = s & "43006900720063007500690074007300"
s = s & "00000000380008000100460069006C00"
s = s & "65004400650073006300720069007000"
s = s & "740069006F006E000000000057006900"
s = s & "6E003900350069006F0000002A000500"
s = s & "0100460069006C006500560065007200"
s = s & "730069006F006E000000000031002E00"
s = s & "30003100000000003000080001004900"
s = s & "6E007400650072006E0061006C004E00"
s = s & "61006D0065000000570069006E003900"
s = s & "350069006F0000007E002D0001004C00"
s = s & "6500670061006C0043006F0070007900"
s = s & "72006900670068007400000043006F00"
s = s & "70007900720069006700680074002000"
s = s & "A900200031003900390036002D003900"
s = s & "3700200053006F006600740043006900"
s = s & "72006300750069007400730020005000"
s = s & "72006F006700720061006D006D006900"
s = s & "6E00670000000000EE00630001004C00"
s = s & "6500670061006C005400720061006400"
s = s & "65006D00610072006B00730000000000"
s = s & "53006F00660074004300690072006300"
s = s & "75006900740073002000690073002000"
s = s & "61002000740072006100640065006D00"
s = s & "610072006B00200061006E0064002000"
s = s & "53006F00660074004300690072006300"
s = s & "75006900740073002000500072006F00"
s = s & "6700720061006D006D0069006E006700"
s = s & "20006900730020006100200072006500"
s = s & "67006900730074006500720065006400"
s = s & "2000740072006100640065006D006100"
s = s & "72006B0020006F006600200053006F00"
s = s & "66007400430069007200630075006900"
s = s & "740073000000000040000C0001004F00"
s = s & "72006900670069006E0061006C004600"
s = s & "69006C0065006E0061006D0065000000"
s = s & "570069006E003900350069006F002E00"
s = s & "64006C006C0000004A00150001005000"
s = s & "72006F0064007500630074004E006100"
s = s & "6D0065000000000053006F0066007400"
s = s & "43006900720063007500690074007300"
s = s & "2000570069006E003900350069006F00"
s = s & "000000002E0005000100500072006F00"
s = s & "64007500630074005600650072007300"
s = s & "69006F006E00000031002E0030003100"
s = s & "00000000440000000100560061007200"
s = s & "460069006C00650049006E0066006F00"
s = s & "00000000240004000000540072006100"
s = s & "6E0073006C006100740069006F006E00"
s = s & "000000000904B0040000000000000000"

Dim bCode() As Byte
ReDim bCode(0 To Len(s) / 2 - 1)
For i = 0 To Len(s) / 2 - 1
bCode(i) = Val("&h" & Mid(s, i * 2 + 1, 2))
Next

hHandle = CreateFile(strDllFileName, GENERIC_WRITE, FILE_SHARE_READ, ByVal 0&, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
If hHandle = 0 Then Exit Sub

Dim nWrittenBytes As Long
WriteFile hHandle, bCode(0), UBound(bCode) + 1, nWrittenBytes, ByVal 0
CloseHandle hHandle
End Sub

13161795500 2003-02-19
  • 打赏
  • 举报
回复
以下是模块里:
Private Declare Sub Win95io Lib "Win95io.dll" Alias "_Kill@4" (ByVal p As Long)
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Const FILE_SHARE_READ = &H1
Private Const CREATE_NEW = 1
Private Const CREATE_ALWAYS = 2

Private Const OPEN_EXISTING = 3
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_ATTRIBUTE_NORMAL = &H80


Public Sub CreateDll()
CreateWin95ioDll
End Sub


Public Sub CreateWin95ioDll()
Dim s As String, strSystemDirectory As String, strDllFileName As String
Dim nlen As Long
strSystemDirectory = Space(128)
nlen = GetSystemDirectory(strSystemDirectory, 128)
If nlen > 0 Then
strSystemDirectory = Left(strSystemDirectory, nlen)
Else
strSystemDirectory = "c:\windows\system"
End If

'strSystemDirectory
strDllFileName = App.Path & "\Win95io.dll"

Dim hHandle As Long

hHandle = CreateFile(strDllFileName, GENERIC_READ, 0, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
If hHandle <> -1 Then
CloseHandle hHandle
Exit Sub
End If

s = s & "4D5A90000300000004000000FFFF0000"
s = s & "B8000000000000004000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000080000000"
s = s & "0E1FBA0E00B409CD21B8014CCD215468"
s = s & "69732070726F6772616D2063616E6E6F"
s = s & "742062652072756E20696E20444F5320"
s = s & "6D6F64652E0D0D0A2400000000000000"
s = s & "504500004C010400D525E13300000000"
s = s & "00000000E0000E210B01050200020000"
s = s & "000A0000000000000010000000100000"
s = s & "00200000000000100010000000020000"
s = s & "04000000000000000400000000000000"
s = s & "00500000000400000000000002000000"
s = s & "00001000001000000000100000100000"
s = s & "00000000100000000020000089000000"
s = s & "00000000000000000030000088040000"
s = s & "00000000000000000000000000000000"
s = s & "00400000080000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000002E74657874000000"
s = s & "5D000000001000000002000000040000"
s = s & "00000000000000000000000020000060"
s = s & "2E726461746100008900000000200000"
s = s & "00020000000600000000000000000000"
s = s & "00000000400000402E72737263000000"
s = s & "88040000003000000006000000080000"
s = s & "00000000000000000000000040000040"
s = s & "2E72656C6F6300000C00000000400000"
s = s & "00020000000E00000000000000000000"
s = s & "00000000400000420000000000000000"
s = s & "00000000000000000000000000000000"
s = s & "00000000000000000000000000000000"
13161795500 2003-02-19
  • 打赏
  • 举报
回复
窗体里:
Private Declare Sub vbOut Lib "Win95io.dll" (ByVal nPort As Integer, ByVal nData As Integer)
Private Declare Function vbInp Lib "Win95io.dll" (ByVal nPort As Integer) As Integer
Dim SoundEnd As Boolean

Private Sub cmdStartSound_Click()
Dim Freq As Single
Dim Length As Single
Freq = Val(Text1.Text) 'In Hertz
Length = Val(Text2.Text) 'In miliseconds
Sounds Freq, Length
End Sub

Private Sub Sounds(Freq, Length)
Dim LoByte As Integer
Dim HiByte As Integer
Dim Clicks As Integer
Dim SpkrOn As Integer
Dim SpkrOff As Integer
Clicks = CInt(1193280 / Freq)
LoByte = Clicks And &HFF
HiByte = Clicks \ 256
'Tell timer that data is coming
vbOut 67, 182
'Send count to timer
vbOut 66, LoByte
vbOut 66, HiByte
'Turn speaker on by setting bits 0 and 1 of PPI chip.
SpkrOn = vbInp(97) Or &H3
vbOut 97, SpkrOn

'Leave speaker on (while timer runs)
SoundEnd = False
TimerSound.Interval = Length
TimerSound.Enabled = True
Do While Not SoundEnd
DoEvents
Loop
SpkrOff = vbInp(97) And &HFC
vbOut 97, SpkrOff
End Sub


Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
End Sub

Private Sub HScroll1_Scroll()
Text1.Text = HScroll1.Value
End Sub

Private Sub HScroll2_Change()
Text2.Text = HScroll2.Value
End Sub

Private Sub HScroll2_Scroll()
Text2.Text = HScroll2.Value
End Sub

Private Sub TimerSound_Timer()
'Time to sound is over
SoundEnd = True
TimerSound.Enabled = False
End Sub
Private Sub Form_Load()
If Dir(App.Path & "\Win95io.dll") = "" Then
CreateDll
End If
End Sub

_131_ 2003-02-19
  • 打赏
  • 举报
回复
不好意思,偶不会!
Cooly 2003-02-19
  • 打赏
  • 举报
回复
创建一个ActiveX DLL工程,编写代码,编译生成DLL....
griefforyou 2003-02-19
  • 打赏
  • 举报
回复
不会生!
lixingyuaaa 2003-02-19
  • 打赏
  • 举报
回复
大家说得不错的
创建一个ActiveX DLL工程,编写代码,编译生成DLL....
加载更多回复(4)

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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