簡體   English   中英

為什么我找不到目錄名稱

[英]Why I can't get directory name

我使用Win API的程序:

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;

int _main(int argc, _TCHAR* argv[]) {
    char *fileExt = NULL;
    TCHAR szDir[MAX_PATH];
    GetFullPathName(argv[0], MAX_PATH, szDir, &fileExt);
    printf("Full path: %s\nFilename: %s\n", szDir, fileExt);

    return 0;
}

我在這里這里使用示例,但是我收到一條錯誤消息:“ char *”類型的參數與“ LPWSTR”類型的參數不兼容。

我的錯誤在哪里?

如下定義的字符串稱為ANSI字符串。

char* fileExt = NULL;

並且如下定義的字符串可以是ANSI字符串或Unicode字符串。 您的項目是使用UNICODE/_UNICODE宏編譯的,因此它是Unicode字符串。

TCHAR szDir[MAX_PATH];

您不能將它們混合在一起,有關VC ++中的數據類型標識符(例如TCHARLPCTSTR ,請參閱本文

我對您的代碼進行了一些修改,如下所示。

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    TCHAR *fileExt = NULL; 
    TCHAR szDir[MAX_PATH];
    GetFullPathName(argv[0], MAX_PATH, szDir, &fileExt);
    _tprintf(_T("Full path: %s\nFilename: %s\n"), szDir, fileExt); 
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM