我得到以下錯誤的參數不兼容:智能感知:類型「爲const char *」的說法是,類型爲「LPCWSTR」
類型「爲const char *」的說法是有類型的參數不兼容「LPCWSTR 「
這裏是我的代碼:
static char* getFmuPath(const char* fileName){
char pathName[MAX_PATH];
int n = GetFullPathName(fileName, MAX_PATH, pathName, NULL);
return n ? strdup(pathName) : NULL;
}
我宣佈MAX_PATH,但它仍然顯示在路徑
錯誤#define MAX_PATH 4096
什麼問題?
你基本上有兩個選擇。 1.避免使用'TCHAR *','LPTSTR','LPCTSTR'和朋友,或以任何形式引用它們的任何API。如果你看到任何這樣的API,請使用它...... W或...明確指出一個對象(在這種情況下爲'GetFullPathNameA')。 2.避免'char *'和'wchar_t *',使用'TCHAR *'。當您需要將'TCHAR *'與'char *'和'wchar_t *'接口時,使用顯式轉換。選項2不太推薦。 –
我已經完成從** char **改爲** TCHAR **現在錯誤消失了,但現在在** strdup(路徑名)**它顯示相同的錯誤 – PrajwalBhat
您的程序將受益於C或C++之間的選擇。將這兩種語言混合在一起往往會產生一種程序,它受到兩種語言中最糟糕的困擾,並且也沒有得到任何好處。 – MSalters