资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net未声明名称 vb外部名未定义

请问为什么我公司的vb.net源码到了我的电脑上运行就会显示好多未声明啊?

用API 函数GetVolumeInformation得到的不是硬盘的序列号!!!

成都创新互联是一家从事企业网站建设、成都做网站、成都网站建设、成都外贸网站建设、行业门户网站建设、网页设计制作的专业网站设计公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点成百上千。

BOOL GetVolumeInformation(

LPCTSTR lpRootPathName,

LPTSTR lpVolumeNameBuffer,

DWORD nVolumeNameSize,

LPDWORD lpVolumeSerialNumber,

LPDWORD lpMaximumComponentLength,

LPDWORD lpFileSystemFlags,

LPTSTR lpFileSystemNameBuffer,

DWORD nFileSystemNameSize

);

看看英文啊:VolumeSerialNumber!得到的只是卷区序列号!

硬盘的序列号应该是

Drive Model Number________________: WDC WD400EB-00CPF0

Drive Serial Number_______________: WD-WCAATF083586

Drive Controller Revision Number__: 06.04G06

Controller Buffer Size on Drive___: 2097152 bytes

Drive Type________________________: Fixed

Drive Size________________________: 40020664320 bytes

中:

Drive Serial Number_______________: WD-WCAATF083586 这才是硬盘Serial Number!!!!

这个号是不会因为你格式化硬盘而改动,也不是网上流传的修改工具能改的,(其实网上流传的修改工具的也不过是卷区号而已!)

建议用 DiskID.dll或DiskID32.dll来获取

用diskid.dll和disk32.dll获得硬盘序列号

1.调用diskid.dll实现:

Option Explicit

Private Declare Function IsWinNT Lib "DiskID.DLL" () As Long

Private Declare Function ReadPhysicalDrive9X Lib "DiskID.DLL" (driveID As Long, buffer As Long, bufLen As Long) As Long

Private Declare Function ReadPhysicalDriveInNT Lib "DiskID.DLL" (driveID As Long, buffer As Long, bufLen As Long) As Long

Private Type DRIVER_INFO_OK

ModalNumber(39) As Byte

SerialNumber(19) As Byte

ControlNum(7) As Byte

DriveType As Long

Cylinders As Long

Heads As Long

Sectors As Long

End Type

Private Sub Command1_Click()

Dim x As DRIVER_INFO_OK

Dim i As Long

If IsWinNT = 1 Then

i = ReadPhysicalDriveInNT(ByVal 0, ByVal VarPtr(x), ByVal 256)

Else

i = ReadPhysicalDrive9X(ByVal 0, ByVal VarPtr(x), ByVal 256)

End If

Dim s As String

s = StrConv(x.ModalNumber, vbUnicode)

s = Left(s, InStr(1, s, Chr(0)) - 1)

MsgBox "硬件厂商代码为:" + s

s = StrConv(x.SerialNumber, vbUnicode)

s = Left(s, InStr(1, s, Chr(0)) - 1)

MsgBox "硬盘序列号为:" + s

End Sub

2.调用diskid32.dll实现:

Option Explicit

Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DiskModel As Byte, ByRef DiskID As Byte) As Long

Private Sub Command1_Click()

Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, ID As String

If DiskID32(DiskModel(0), DiskID(0)) 1 Then

MsgBox "get diskid32 err"

Exit Sub

End If

For i = 0 To 31

If Chr(DiskModel(i)) Chr(0) Then

Model = Model Chr(DiskModel(i))

End If

If Chr(DiskID(i)) Chr(0) Then

ID = ID Chr(DiskID(i))

End If

Next

MsgBox "硬件产生代码为:" + Model

MsgBox "硬盘序列号为:" + ID

End Sub

说明:diskid.dll可从下载

diskid32.dll可从下载

VB登陆程序错误

cnum 没有声明dim的声明一下,

你必须明白,如果你用 vb.net 做开发就别再用 ado 而改用ado.net

用oledb.oldbconnection代替 adodb.connection

如果你坚持在 .net 中用ado,请添加引用,引用 com 中的 ado

setfocus 不是.net 用法 改成 focus

unload改成 close

或者你可以用vb.net 的自带工具,升级vb6的代码。

vb编程中出现未声明Txet1 是什么意思

窗体上不存在 Text1 这个控件,所以出错。

通常文本框控件在VB6中默认是Text1,而在VB.NET中则是TextBox1,是不是这个错误?如果是,那么你可以把代码中的全部Text1改为TextBox1,或者把文本框控件的名称改为Text1也行。

VB 中 未声明名称"MessageBox"

MessageBox因该是一个控件的名称,你一个空白页面,什么控件都没,当然无法引用。

随便拉一个控件出来,然后属性名称设置为MessageBox就可以了。

vb.net 中 未声明名称“instr” 是什么情况? 谢谢解答!!!

返回的Variant(长),指定一个字符串在另一个字符串在第一的位置。

语法

INSTR([开始]字符串1,字符串[比较])

InStr函数的语法有以下参数:

部分

启动可选参数。数值表达式,设置每次搜索的起点。如果从第一个字符的位置被删去。如果start包含Null,将发生错误。如果指定了compare参数,你必须有一个起始参数。

string1中所需的参数。接受搜索字符串表达式。

字符串所需的参数。搜索的字符串表达式。

比较可选参数。指定的字符串比较。如果比较是空的,就会发生错误。如果省略比较选项比较设置决定比较的类型。

比较参数设置:

恒定值说明

vbUseCompareOption -1用Option Compare语句设置为执行的比较。的执行0

描述vbBinaryCompare 0二进制比较。 / vbTextCompare 1进行比较,根据原来的。

vbDatabaseCompare 2仅适用于Microsoft Access中,根据数据库中的信息进行比较。

返回值

如果InStr返回

string1是零长度0

STRING1为Null空

字符串长度为零开始字符串是空空

字符串找不到

在string1中找到string2中找到位置

开始字符串0

描述

INSTRB功能作用于在字符串中包含的数据字节。因此INSTRB返回的字节位置,而不是字符位置。

INSTR函数示例

本示例使用InStr函数来找到一个字符串在另一个字符串中第一次出现的。

暗淡的searchstring SearchChar MyPos

搜寻字串=“XXpXXpXXPXXP”'被搜索的字符串。该,

SearchChar =“P”'要查找字符串“P”。

“从一开始的第四个字符,文本比较看。返回值是6(小写对)。

'小写p,大写的P在文字下是相同的。

MyPos = INSTR(4,搜寻字串,SearchChar 1),

“开放二进制比较从第一个字符找到。 9(大写P)的返回值。

'小写p和大写的P在二进制比较是不一样的。在,

MyPos = INSTR(1搜寻字串,SearchChar 0)

的默认,而不是二进制比较(最后一个参数可省略)。

MyPos = INSTR(搜寻字串SearchChar),返回到9。

MyPos = INSTR(1,搜寻字串,“W”)'返回0。

关于鹿养生的知识非常乐意与您分享

VB.NET 我在Class里面用Public关键词写的函数和变量为什么在窗体里面调用时被提示未声明?

猜想你使用时是用类名.方法名?

改成(new 类名()).方法名试试。


分享文章:vb.net未声明名称 vb外部名未定义
标题来源:http://cdkjz.cn/article/hpggij.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220