-
GetCurrentDirectory
鎖定
是一個系統參數,在一個緩衝區中裝載當前目錄,Long,裝載到lpBuffer的字節數。如nBufferLength的長度不夠,不足以容納目錄,則返回值是必要的緩衝區長度(要求至少這個長度),其中包括空中止字符。零表示失敗。會設置GetLastError。
- 中文名
- GetCurrentDirectory
- 表達式
- 一個系統參數
- 適用領域
- 運存
- 應用學科
- 計算機
GetCurrentDirectoryVB聲明
Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" (ByVal nBufferLength As Long,ByVal lpBuffer As String) As Long
GetCurrentDirectory説明
在一個緩衝區中裝載當前目錄
GetCurrentDirectory返回值
Long,裝載到lpBuffer的字節數。如nBufferLength的長度不夠,不足以容納目錄,則返回值是必要的緩衝區長度(要求至少這個長度),其中包括空中止字符。零表示失敗。會設置GetLastError
GetCurrentDirectory參數表
參數 類型及説明
nBufferLength Long,lpBuffer緩衝區的長度
lpBuffer String,指定一個預定義字串,用於裝載當前目錄。
GetCurrentDirectoryVC聲明
DWORD GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer );
GetCurrentDirectory函數功能
獲取當前進程的當前目錄。
注意當前目錄這東西有點怪異,本來確實是可執行文件的所在目錄,但是當用文件對話框成功打開一個文件後,該目錄就被修改為被打開的文件所在目錄。比如在程序中使用"123.txt"這樣的文件名,希望將它存儲在exe文件所在目錄中,但是當用户用文件對話框打開一個文件"F:\456.txt"後,這個123.txt會被存儲到F盤下。(VC2005下的情況,其他VC版本待驗證)
GetCurrentDirectory參數説明
參數 類型及説明
nBufferLength 緩衝區的長度
lpBuffer 指定一個預定義字串,用於裝載當前目錄
GetCurrentDirectory返回值
調用成功 返回裝載到lpBuffer的字節數。
使用GetLastError函數可獲得錯誤信息。
GetCurrentDirectoryAda聲明
該函數定義於WIN32庫,當然,也可以自己在需要時隨時創建聲明,聲明如下:
typeDWORDismod2**32;--DWORD是無符號32位類型 functionGetCurrentDirectory( nBufferLength:DWORD;--指定目錄緩衝的長度(多少字節) lpBuffer:accesscharacter--給定字符串首個字符的訪問值(指針) )returnDWORD;
pragmaimport(stdcall,GetCurrentDirectory,"GetCurrentDirectoryA");--從庫中導入該函數
我們接着來創建一個Ada版本的函數。
functiongetCurrentDirectoryreturnstringis functiongetCurrentDirectory(nBufferLength:DWORD;lpBuffer:accesscharacter)returnDWORD; pragmaimport(stdcall,getCurrentDirectory,"GetCurrentDirectoryA"); len:dword:=getCurrentDirectory(0,null);--首先利用系統函數來獲取必要的字符串長度 s:string(1..integer(len)); begin len:=getCurrentDirectory(len,s(1)'unrestricted_access); returns(s'first..s'last-1);--C字符串以NUL結尾,去除 endgetCurrentDirectory;
GetCurrentDirectory函數位置
VC下包含該函數的頭文件 windows.h