#ifndef UNICODE
#define UNICODE
#endif

#include <Windows.h>
#include <cstdio>

TCHAR* getSystemVolumine()
{
    TCHAR volumine[2];
    TCHAR buffer[30];

    GetSystemWindowsDirectory(buffer,30);

    for(int i=0 ; i < 2 ; i++)
        volumine[i]=buffer[i];

    return volumine;
}


int main()
{
    wprintf(L"Your system volumine letter%s\n",getSystemVolumine());
    system("pause");
}

我不知道这段代码有什么问题。调试既未显示错误也未显示警告,但输出为:
Your system volumine letter
Press any key to continue...

最佳答案

您正在返回一个指向局部变量的指针,当该函数返回时,该变量不再存在
wprintf的字符串必须以“\ 0”结尾。

#include <Windows.h>
#include <cstdio>

void getSystemVolumine(TCHAR *vol)
{
    TCHAR buffer[30];

    GetSystemWindowsDirectory(buffer,30);

    for(int i=0 ; i < 2 ; i++)
        vol[i]=buffer[i];

    vol[2] = 0;
}


int main()
{
    TCHAR vol[3];

    getSystemVolumine(vol);

    wprintf(L"Your system volumine letter %S\n",vol);
    system("pause");
}

关于c++ - 获取包含Windows系统目录的驱动器号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10364196/

10-10 00:16