Excel-VBA操作文件四大方法之四利用API函数来处理文件

合集下载

Excel浅谈API与在VBA中的调用

Excel浅谈API与在VBA中的调用

Excel浅谈API与在VBA中的调用浅谈API 与在VBA中的调用以前看到VBA里的P lic Declare Function 时真是头大,光照搬过来用都觉得难现在懂一点点了,特地讲出来与大家分享,共同进步!毕竟也在EXCELHOME成长了不少我尽量将其最简单化,可能有些用词并不是很准确,但对于理解确很有帮助(如果没有代码基础的有自信也可以看哦)我们需要理解:1,何谓API:得先讲动态程式库(DLL文件),DLL文件你可以把它想象成一个开机就运行的含有很多全局函数的程序(可以说DLL是windows 的基础,windows的大部分功能就是靠dll完成的)而API 是包装在DLL文件中的函数(跟VBA写的函数没啥区别,只是语言不同),现在我们就可以把API称作为函数了,DLL文件中封装的每个函数都对外有一个接口,接口由函数名,参数表组成,像下面这个例子一样=============================================================对外输出申明 S test2(int number) “test2”就是API函数名称“(int number)”就是参数表MsgBox(“Hello!”)End S==============================================================这个API函数作用是向调用的程序显示一个消息框,而其它的API 只是功能不一样,但结构差不多;现在了解API的大概与原理了那就可以看怎么使用了2,VBA中怎么调用APIVBA我们有一个通用的方法调用,这个得举例了,如下P lic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long得先认关键字,关键字就是系统定义好的,你调用就好了,就是要记得东西,这里的关键字有P lic Declare FunctionLibAlias(ByVal As String, ByVal as String)As Long这些关键字如果一点也不熟悉,你可以参考EXCEL VBA帮助文档,现在讲这个例子的含义“P lic Declare Function”:这个部分你可以记下来,“p lic” 不用我讲了全局的“Declare Function” 可以理解为定义一个函数“FindWindow”:随便写的自己用的函数名“Lib "user32" Alias "FindWindowA" ”:核心部分,涉及的东西很多,但你不用灰心,记下一个就是一个(用法都是死的),还可以去网上下一个API大全(自己下啊).“Lib "user32"” 载入user32.dll 文件,其实也可以写成“Lib "C:\WINDOWS\system32\user32.dll"”,这才是真面目(是因为环境变量里头有设定系统路径,才可写成“Lib "user32"”)。

VBA中调用API函数的方法和技巧

VBA中调用API函数的方法和技巧

VBA中调用API函数的方法和技巧VBA(Visual Basic for Applications)是一种用于微软Office应用程序的编程语言,它提供了许多强大的功能和工具,可以增强Office程序的自动化和扩展性。

在VBA中,调用API函数是一种常见的方式,可以让我们使用计算机系统提供的底层功能,以实现更高级的操作。

本文将介绍VBA中调用API函数的方法和技巧,以帮助您更好地使用VBA进行编程。

1. 了解API函数的基本概念API(Application Programming Interface)是一组定义了程序之间交互方式的规范。

通过调用API函数,我们可以利用操作系统或其他程序提供的功能,而无需自己编写底层代码。

VBA中的API函数是以动态链接库(DLL)的形式提供的,这些DLL文件通常包含了许多函数和过程,可以供我们进行调用。

2. 查找所需的API函数在VBA中调用API函数之前,我们需要先找到需要使用的API函数及其所属的DLL文件。

可以通过以下几种方式来查找:- 在Microsoft的官方文档中查找:Microsoft提供了许多API函数的文档,可以在其网站上找到对应的函数说明和示例代码。

- 在互联网上搜索:许多技术论坛和网站都提供了关于API函数的使用方法和示例代码。

可以通过搜索引擎来寻找相关的资源。

- 使用API查找工具:有一些第三方工具可以帮助我们查找API函数及其所属的DLL文件。

例如,Dependency Walker是一个常用的工具,可以查看DLL文件中包含的函数和模块。

3. 声明API函数在VBA中调用API函数之前,我们需要先声明这些函数,以告诉编译器它们的名称、参数和返回值的类型。

声明API函数的语法如下:```vbaPrivate Declare Function 函数名 Lib "DLL文件名" (参数列表) As 返回值类型```其中,函数名是API函数的名称,DLL文件名是包含该函数的DLL文件的名称,参数列表是函数的参数及其类型,返回值类型是函数的返回值类型。

VBA常用函数汇总及使用方法

VBA常用函数汇总及使用方法

VBA常用函数汇总及使用方法在Excel宏的编程过程中,VBA(Virtual Basic for Applications)是一门非常重要的编程语言。

作为VBA的一部分,函数在编写宏时发挥着重要的作用。

它们可以简化编程过程、提高效率,同时还可以处理和操作各种数据类型。

本文将为您介绍一些常用的VBA函数及其使用方法,帮助您更好地进行Excel宏的编程。

一、常用函数和使用方法1. Len函数Len函数用于返回字符串的长度。

在使用Len函数时,需要将待计算长度的字符串放入括号中,并将函数返回的值赋给一个变量。

示例代码:```Dim str as StringDim length as Integerstr = "Hello World"length = Len(str)MsgBox "字符串的长度为:" & length```2. Left函数和Right函数Left函数和Right函数分别用于返回字符串的左侧和右侧指定个数的字符。

这两个函数需要两个参数,第一个参数是待处理的字符串,第二个参数是要返回的字符数。

示例代码:```Dim str as StringDim leftStr as StringDim rightStr as Stringstr = "Hello World"leftStr = Left(str, 5)rightStr = Right(str, 5)MsgBox "左侧5个字符为:" & leftStrMsgBox "右侧5个字符为:" & rightStr```3. Mid函数Mid函数用于返回字符串中指定位置开始的指定字符数的字符串。

这个函数有三个参数,分别是待处理的字符串、开始位置和要返回的字符数。

示例代码:```Dim str as StringDim subStr as Stringstr = "Hello World"subStr = Mid(str, 7, 5)MsgBox "子字符串为:" & subStr```4. UCase函数和LCase函数UCase函数用于将字符串转换为大写,LCase函数用于将字符串转换为小写。

VBA调用系统API函数的方法与实例说明

VBA调用系统API函数的方法与实例说明

VBA调用系统API函数的方法与实例说明VBA(Visual Basic for Applications)是一种基于Microsoft Visual Basic语言的宏编程语言,主要用于操作Microsoft Office软件中的各种功能。

尽管VBA本身提供了丰富的功能,但有时候我们可能需要调用操作系统的API函数来实现一些高级或特定的功能。

本文将详细介绍VBA调用系统API函数的方法,并提供一些实例说明。

在VBA中调用系统API函数可以拓展VBA的功能,并且提供了解决复杂问题的能力。

使用API函数可以与操作系统进行交互,访问底层功能和资源。

以下是一些常用的VBA调用系统API函数的方法:1. 声明API函数在使用API函数之前,我们需要在VBA中声明该函数。

声明API函数的语法如下:```Declare Function 函数名 Lib "库名称" ([alias]] [参数列表]) [返回值类型]```其中,函数名是要调用的API函数的名称,Lib是API 函数所在的库名称,参数列表是API函数的输入参数,返回值类型是API函数的返回值类型。

2. 调用API函数一旦我们声明了API函数,就可以在VBA代码中调用该函数。

调用API函数的语法如下:```变量名 = 函数名([参数列表])```其中,变量名是接收API函数返回值的变量名,函数名是已声明的API函数的名称,参数列表是传递给API函数的参数列表。

3. 释放资源在调用API函数之后,我们需要确保适当地释放相关资源以避免内存泄漏。

可以使用相关的API函数来释放资源,如CloseHandle函数释放句柄资源。

现在让我们通过几个实例来说明如何在VBA中调用系统API函数:1. 调用MessageBox函数MessageBox函数用于显示一个包含指定消息和按钮的模态对话框,并返回用户的操作。

下面的代码演示了如何在VBA中调用MessageBox函数:```vbaDeclare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hWnd As Long, _ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long) As LongSub ShowMessageBox()Dim prompt As StringDim title As StringDim result As Longprompt = "这是一个提示框!"title = "提示"result = MessageBox(0, prompt, title, 1)End Sub```在上述代码中,我们首先声明了MessageBox函数,然后在Sub过程ShowMessageBox中调用了该函数。

VBA中的功能扩展与插件开发技巧

VBA中的功能扩展与插件开发技巧

VBA中的功能扩展与插件开发技巧VBA(Visual Basic for Applications)是一种用于自动化操作Microsoft Office套件(如Excel、Word和PowerPoint等)的编程语言。

在使用VBA进行开发时,我们经常会遇到需要扩展现有功能或开发自定义插件的需求。

本文将介绍一些在VBA中实现功能扩展和插件开发的技巧。

1. 使用VBA引用外部库在VBA中,可以通过引用外部库来使用其他语言的功能。

通过引用外部库,我们可以使用更多的函数和类,从而扩展VBA的功能。

例如,我们可以引用Microsoft XML库来处理XML数据,或引用Windows Script Host库来执行Shell脚本等。

要引用外部库,首先打开VBA编辑器,然后选择“工具”菜单中的“引用”。

在弹出的“引用”对话框中,勾选对应的库并点击“确定”按钮。

接下来就可以在VBA代码中使用外部库中的函数和类了。

2. 创建自定义对象类在VBA中,我们可以创建自定义的对象类,以实现更灵活和复杂的功能。

通过创建自定义对象类,我们可以封装一些任务相关的属性和方法,并在需要的时候实例化这个类来调用其中的方法。

要创建自定义对象类,需要在VBA编辑器的“插入”菜单中选择“类模块”。

然后在类模块中定义类的属性和方法。

例如,我们可以创建一个名为“Customer”的类来表示一个客户信息,包括姓名、地址等属性,以及一些操作这些属性的方法。

3. 使用事件处理程序VBA支持事件处理程序,允许我们在特定事件发生时执行相应的操作。

通过使用事件处理程序,我们可以实现对用户操作的响应,从而扩展VBA的功能。

例如,在Excel VBA中,我们可以使用“Worksheet_Change”事件处理程序来在工作表发生变化时执行一些操作。

在VBA编辑器中,选择相应的工作表,然后在“对象”下拉列表中选择“Worksheet”,接下来在右侧的事件下拉列表中选择“Change”。

VBA 中的文件操作与处理指南

VBA 中的文件操作与处理指南

VBA 中的文件操作与处理指南VBA(Visual Basic for Applications)是一种广泛用于自动化办公软件,如Microsoft Excel、Word和Access的宏语言。

通过使用VBA,用户可以轻松地进行文件的操作与处理。

本文将介绍VBA 中文件操作与处理的指南,旨在帮助读者掌握VBA中处理文件的技巧和方法。

1. 打开和保存文件:在VBA中,使用Workbooks.Open方法可以打开一个已有的Excel文件。

例如,要打开一个名为"example.xlsx"的Excel文件,可以使用以下代码:```Workbooks.Open("C:\example.xlsx")```同样地,使用Workbooks.SaveAs方法可以将当前工作簿另存为另一个Excel文件。

例如,要将当前工作簿另存为名为"new_example.xlsx"的文件,可以使用以下代码:```ActiveWorkbook.SaveAs("C:\new_example.xlsx")```2. 复制、移动和删除文件:要在VBA中复制、移动或删除文件,我们可以使用FileCopy、Name和Kill函数。

- FileCopy函数用于将一个文件复制到另一个位置。

例如,要将名为"example.xlsx"的文件从源文件夹复制到目标文件夹,可以使用以下代码:```FileCopy "C:\source\example.xlsx", "C:\destination\example.xlsx"```- Name函数用于重命名或移动文件。

例如,要将名为"example.xlsx"的文件从源文件夹移动到目标文件夹并将其重命名为"new_example.xlsx",可以使用以下代码:```Name "C:\source\example.xlsx" As"C:\destination\new_example.xlsx"```- Kill函数用于删除文件。

Excel-VBA操作文件四大方法之二 利用VBA文件处理语句来处理文件

Excel-VBA操作文件四大方法之二  利用VBA文件处理语句来处理文件

Excel-VBA操作文件四大方法之二二、利用VBA文件处理语句来处理文件VBA包含了许多用于文件操作的语句和函数,可以满足绝大多数情况下的文件操作要求。

下面我们按照操作目的进行一一介绍。

(一)文件处理 语句语法:Name oldpathname As newpathname功能:重命名一个文件、目录、或文件夹,移动一个文件。

说明:在一个已打开的文件上使用Name,将会产生错误。

进行文件操作时,一定要注意错误处理。

示例:On Error Resume Next '错误处理Name "f:\TEST.xls" As "f:\TEST123.xls" '重命名Name "f:\TEST.xls" As "f:\dll\TEST.xls" '移动文件Name "f:\TEST.xls" As "d:\TEST123.xls" '跨驱动器移动并重命名文件注意:Name不能移动一个目录或文件夹。

2、FileCopy 语句语法:FileCopy source, destination功能:复制一个文件。

说明:如果对一个已打开的文件使用FileCopy 语句,则会产生错误。

示例:FileCopy "f:\TEST.xls", "e:\TEST.xls" '从F盘复制TEST.xls到E盘3、Kill 语句语法:Kill pathname功能:从磁盘中删除文件。

说明:Kill 支持多字符(*) 和单字符(?) 的统配符来指定多重文件。

如果使用Kill 来删除一个已打开的文件,则会产生错误。

示例:Kill "f:\TEST.xls" ’删除F盘的TEST.xls文件Kill "f:\*.xls" ' 删除F盘所有xls文件4、GetAttr 函数语法:GetAttr(pathname)功能:获取一个文件、目录、或文件夹的属性。

VBA常用函数及使用方法

VBA常用函数及使用方法

VBA常用函数及使用方法VBA(Visual Basic for Applications)是一种用于编写Microsoft Office应用程序的编程语言。

它允许用户编写自定义功能,优化工作流程,并提高效率。

在VBA 中,函数是一种非常重要的工具,它可以执行各种操作,例如计算、查询数据和处理文本。

本文将介绍几个VBA中常用的函数及其使用方法,帮助读者更好地应用VBA来解决问题和自动化任务。

1. Len 函数Len函数用于返回指定字符串的长度。

它的语法如下:Len(字符串)其中,字符串是要计算长度的字符串。

示例:Dim str As Stringstr = "Hello World"MsgBox Len(str)上述代码会在消息框中显示字符串"Hello World"的长度,即11。

2. InStr 函数InStr函数用于在一个字符串中查找第一个指定子字符串的位置。

它的语法如下:InStr([start, ]字符串1, 字符串2[, 比较模式])其中,start是可选参数,指定从字符串1的哪个位置开始搜索,默认为1;字符串1是要搜索的字符串;字符串2是要查找的子字符串;比较模式是可选参数,指定搜索时是否区分大小写,默认为0,代表不区分大小写。

示例:Dim str As Stringstr = "Hello World"MsgBox InStr(str, "o")上述代码会在消息框中显示第一个字母"o"在字符串"Hello World"中的位置,即5。

3. Left 和 Right 函数Left函数用于返回一个字符串的左侧指定个数的字符,Right函数用于返回一个字符串的右侧指定个数的字符。

它们的语法如下:Left(字符串, 数字)Right(字符串, 数字)其中,字符串是要截取的字符串,数字是要截取的字符个数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Excel-VBA操作文件四大方法之四四、利用API函数来处理文件通过前面三种方法的介绍,你是否已经觉得足够了?是的,前面的方法完全可以应付几乎所有的文件操作。

但是为了普及一下API,展示一下API的魅力,最后向大家介绍一下如何利用API函数来处理文件。

另一方面也是本人对API情有独钟,为她做一下广告,呵呵。

大家对API的强大也是有所耳闻了,在文件操作方面,API自然毫不逊色。

说明:为了文章简洁,我们先给出API函数的名称及功能,其完整的声明及常数就不再一一细诉,只在示例中给出其完整用法。

(一)处理驱动器及目录下面是windows中提供的对于目录进行操作的API函数及其功能:CreateDirectory,CreateDirectoryEx 创建一个新目录GetCurrentDirectory 在一个缓冲区中装载当前目录GetDiskFreeSpace,GetDiskFreeSpaceEx 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量GetDriveType 判断一个磁盘驱动器的类型GetFullPathName 获取指定文件的完整路径名GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径GetSystemDirectory 这个函数能取得Windows系统目录(System目录)的完整路径名。

在这个目录中,包含了所有必要的系统文件。

根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。

通常应避免在这个目录里创建文件。

在网络环境中,往往需要管理员权限才可对这个目录进行写操作GetTempPath 获取为临时文件指定的路径GetVolumeInformation 获取与一个磁盘卷有关的信息GetWindowsDirectory 这个函数能获取Windows目录的完整路径名。

在这个目录里,保存了大多数windows应用程序文件及初始化文件RemoveDirectory 删除指定目录SetCurrentDirectory 设置当前目录SetVolumeLabel 设置一个磁盘的卷标(Label)下面通过几个例子来详细的了解一下其中主要的几个函数及其用法:1、GetLogicalDrives作用:判断系统中存在哪些逻辑驱动器字母声明:Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long说明:此函数的返回值类型为Long,这个结构中的二进制位标志着存在哪些驱动器。

其中,位0设为1表示驱动器A:存在于系统中;位1设为1表示存在B:驱动器;以次类推示例:Public Sub Get_LogicalDrives()Dim LDs As Long, Cnt As Long, sDrives As StringLDs = GetLogicalDrivessDrives = "Available drives:"For Cnt = 0 To 25If (LDs And 2 ^ Cnt) <> 0 ThensDrives = sDrives + " " + Chr$(65 + Cnt)End IfNext CntMsgBox sDrivesEnd Sub上面的示例中,我们通过二进制运算,将返回值转换成字符。

如果你的机上有C,D,E,F,G,H 这几个驱动器,那么LDs的值就是252,转成二进制为11111100,从右往左,依次代表A,B,C,D,...,为0的说明没有此驱动器字母。

大家可以自己试一试。

2、GetDriveType作用:判断一个磁盘驱动器的类型声明:Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long说明:此函数的返回值类型为Long,如驱动器不能识别,则返回零。

如指定的目录不存在,则返回1。

如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE(表示磁盘可以从驱动器上移走,通常是软驱),DRIVE_FIXED(磁盘不能从驱动器上移走,通常为本地硬盘),DRIVE_REMOTE(驱动器是远程网络驱动器),DRIVE_CDROM(驱动器是CD-ROM驱动器)或DRIVE_RAMDISK(驱动器是RAM驱动器)参数为String类型,包含了驱动器根目录路径的一个字串此函数的功能与FSO的Drive对象的DriveType属性是一样的。

示例:\'定义常数变量Private Const DRIVE_CDROM = 5 \'表示光盘驱动器Private Const DRIVE_FIXED = 3 \'表示硬盘驱动器Private Const DRIVE_RAMDISK = 6 \'表示RAM驱动器Private Const DRIVE_REMOTE = 4 \'表示网络驱动器Private Const DRIVE_REMOVABLE = 2 \'表示软盘驱动器Private Sub Get_DriveType()Dim temp As Longtemp = GetDriveType("d:\\") \'取的d:盘驱动器类型Select Case tempCase DRIVE_CDROMMsgBox "DRIVE_CDROM: 光盘驱动器"Case DRIVE_FIXEDMsgBox "DRIVE_FIXED: 硬盘驱动器"Case DRIVE_RAMDISKMsgBox "DRIVE_RAMDISK: RAM驱动器"Case DRIVE_REMOTEMsgBox "DRIVE_REMOTE: 网络驱动器"Case DRIVE_REMOVABLEMsgBox "DRIVE_REMOVABLE: 软盘驱动器"End SelectEnd Sub3、GetDiskFreeSpaceEx作用:获取与一个磁盘的组织以及剩余空间容量有关的信息声明:Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As LARGE_INTEGER, lpTotalNumberOfBytes As LARGE_INTEGER, lpTotalNumberOfFreeBytes As LARGE_INTEGER) As Long说明:此函数的返回值类型为Long,非零表示成功,零表示失败。

会设置GetLastError.在采用FAT16格式的windows95系统中,如一个驱动器(分区)的容量超过了2GB,则不应使用这个函数。

此时,这个函数能识别的最大分区容量只有2GB参数说明:lpRootPathName String,不包括卷名的磁盘根路径名lpFreeBytesAvailableToCaller LARGE_INTEGER,指定一个变量,用于容纳调用者可用的字节数量lpTotalNumberOfBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上的总字节数lpTotalNumberOfFreeBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上可用的字节数LARGE_INTEGER结构用来代表一个64位带符号的整数值,它的定义如下:Type LARGE_INTEGER \' 8 Byteslowpart As Longhighpart As LongEnd Type其中lowpart为Long,指定低32位,highpart 为Long,指定高32位。

示例:虽然此函数能识别的最大分区容量只有2GB,但通过调整,对大于2G的仍然能得出正确容量。

以下的调整公式是本人通过逆向推算出来的,至于其中的原理也不是很清楚,大家可一测试一下。

Private Sub Get_DiskFreeSpaceEx()Dim temp As Long, Dms$Dim tempa, tempb, tempcDim RootPathName As StringDim FreeBytesAvailabletoCaller As LARGE_INTEGERDim TotalNumberOfBytes As LARGE_INTEGERDim TotalNumberOfFreeBytes As LARGE_INTEGERRootPathName = "d:"\'取得磁盘空间temp = GetDiskFreeSpaceEx(RootPathName, FreeBytesAvailabletoCaller, TotalNumberOfBytes, TotalNumberOfFreeBytes)Dms = Dms + "磁盘容量:" + vbCrLftempa = TotalNumberOfBytes.highpart * 2 ^ 32 + IIf(TotalNumberOfBytes.lowpart > 0, TotalNumberOfBytes.lowpart, TotalNumberOfBytes.lowpart + 2 ^ 32) \'计算容量Dms = Dms + CStr(tempa) + "字节" + vbCrLftempa = Format(tempa / 1024 / 1024 / 1024, "0.00")Dms = Dms + tempa + "G" + vbCrLf\'取得磁盘可用空间Dms = Dms + "磁盘可用空间:" + vbCrLftempb = TotalNumberOfFreeBytes.highpart * 2 ^ 32 + IIf(TotalNumberOfFreeBytes.lowpart > 0, TotalNumberOfFreeBytes.lowpart, TotalNumberOfFreeBytes.lowpart + 2 ^ 32) \'计算Dms = Dms + CStr(tempb) + "字节" + vbCrLftempb = Format(tempb / 1024 / 1024 / 1024, "0.00")Dms = Dms + tempb + "G" + vbCrLf\'取得磁盘已用空间Dms = Dms + "磁盘已用空间:" + vbCrLftempc = tempa - tempbDms = Dms + CStr(tempc) + "G" + vbCrLfMsgBox DmsEnd Sub4、CreateDirectory, CreateDirectoryEx作用:创建一个新目录声明:Declare Function CreateDirectory& Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES)Declare Function CreateDirectoryEx& Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES)说明:此函数的返回值类型为Long,非零表示成功,零表示失败。

相关文档
最新文档