ExpandEnvironmentStrings 函數(shù)怎么用

小億
103
2023-12-19 15:37:57

ExpandEnvironmentStrings 函數(shù)是一個(gè)Windows API函數(shù),用來(lái)展開(kāi)包含環(huán)境變量的字符串。

函數(shù)原型為:

DWORD WINAPI ExpandEnvironmentStringsA(
  LPCSTR lpSrc,
  LPSTR  lpDst,
  DWORD  nSize
);

參數(shù)說(shuō)明:

  • lpSrc:要展開(kāi)的包含環(huán)境變量的字符串
  • lpDst:展開(kāi)后的字符串存放的緩沖區(qū)
  • nSize:緩沖區(qū)的大小,以字節(jié)為單位

返回值為展開(kāi)后的字符串的長(zhǎng)度,不包含null字符。如果函數(shù)失敗,則返回0。

示例代碼如下:

#include <Windows.h>
#include <iostream>

int main()
{
    char src[] = "The system directory is %SystemRoot%\\System32";
    char dst[256] = { 0 };

    DWORD result = ExpandEnvironmentStringsA(src, dst, sizeof(dst));
    if (result == 0)
    {
        std::cout << "ExpandEnvironmentStringsA failed with error code: " << GetLastError() << std::endl;
        return 1;
    }

    std::cout << "Expanded string: " << dst << std::endl;

    return 0;
}

運(yùn)行結(jié)果為:

Expanded string: The system directory is C:\Windows\System32

以上代碼將展開(kāi)包含環(huán)境變量的字符串,并將結(jié)果存儲(chǔ)在dst緩沖區(qū)中。展開(kāi)后的字符串可以通過(guò)dst獲取。

0