FindExecutable
在結果緩衝區中返回一個截斷的文件名。是否由於文件名超過8個字符的事實?FindExecutable在C++中截斷文件名
代碼:
strPath = "test12345.exe";
CString strDiraa = "c:\\test\\test";
TCHAR szExe[1024];
::FindExecutable(
strFile, // pointer to filename
strDir.IsEmpty() ? 0 : LPCTSTR(strDir), // pointer to default directory
szExe // result-buffer
);
szExe
是c:\test\test\TEST12~1.EXE
但它應該是c:\test\test\TEST12345.EXE
。
有沒有一種方法可以擁有正確的名稱?
這是傳統* 8.3 *(簡稱)格式名稱,您使用的是哪個版本的Windows?另外爲什麼你在EXE上使用FindExecutable? –
[LPCTSTR lpFile - 此文件應該是一個文檔](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776419%28v=vs.85%29.aspx?f=255&MSPPError=- 2147217396) – crashmstr
你也有一個很大的混合變量名稱('strPath' vs'strFile','strDiraa' vs'strDir')。 – crashmstr