词条 | GetCurrentDirectory |
释义 | VB声明Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 说明 在一个缓冲区中装载当前目录 返回值 Long,装载到lpBuffer的字节数。如nBufferLength的长度不够,不足以容纳目录,则返回值是必要的缓冲区长度(要求至少这个长度),其中包括空中止字符。零表示失败。会设置GetLastError 参数表 参数 类型及说明 nBufferLength Long,lpBuffer缓冲区的长度 lpBuffer String,指定一个预定义字串,用于装载当前目录 VC声明DWORD GetCurrentDirectory( DWORD nBufferLength, // size of directory buffer LPTSTR lpBuffer // directory buffer ); 函数功能 获取当前进程的当前目录 参数说明 参数 类型及说明 nBufferLength 缓冲区的长度 lpBuffer 指定一个预定义字串,用于装载当前目录 返回值 调用成功 返回装载到lpBuffer的字节数。 如nBufferLength的长度不够,不足以容纳目录,则返回值是必要的缓冲区长度(要求至少这个长度),其中包括空中止字符。零表示失败。使用GetLastError函数可获得错误信息 Ada声明该函数定义于WIN32库,当然,也可以自己在需要时随时创建声明,声明如下: type DWORD is mod 2**32; -- DWORD是无符号32位类型 function GetCurrentDirectory( nBufferLength:DWORD; -- 指定目录缓冲的长度(多少字节) lpBuffer:access character -- 给定字符串首个字符的访问值(指针) ) return DWORD; pragma import(stdcall,GetCurrentDirectory,"GetCurrentDirectoryA"); -- 从库中导入该函数 我们接着来创建一个Ada版本的函数。 function getCurrentDirectory return string is function getCurrentDirectory(nBufferLength:DWORD;lpBuffer:access character) return DWORD; pragma import(stdcall,getCurrentDirectory,"GetCurrentDirectoryA"); len:dword:=getCurrentDirectory(0,null); -- 首先利用系统函数来获取必要的字符串长度 s:string(1..integer(len)); begin len:=getCurrentDirectory(len,s(1)'unrestricted_access); return s(s'first..s'last-1); -- C字符串以NUL结尾,去除 end getCurrentDirectory; |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。