我正在尝试使用 GetFileInformationByHandle()
获取现有文件的信息。我执行所需任务的函数接收 LPCTSTR Filename
作为参数。这是代码:
getfileinfo(LPCTSTR Filename)
{
OFSTRUCT oo;
BY_HANDLE_FILE_INFORMATION lpFileInformation;
HFILE hfile=OpenFile((LPCSTR)Filename,&oo,OF_READ);
int err=GetLastError();
GetFileInfomationByHandle((HANDLE)hfile,&lpFileInformation);
}
如果我将 Filename
声明为 LPCSTR
,上面的代码工作正常,但根据我的功能要求,我在 LPCTSTR
中收到文件名,所以如果我使用类型转换然后 openfile()
找不到指定的文件并返回 -1。
如果文件名是LPCTSTR
,谁能告诉我如何获取文件信息?或者如何将 LPCTSTR
转换为 LPCSTR
。
为什么这种类型转换不起作用?我相信这应该有效。
最佳答案
只是转换指针不会将指向的实际数据(即文件名)更改为八位字符。
阅读 the docs at MSDN建议改用 CreateFile
来处理 LPCTSTR 文件名。
关于c++ - LPCTSTR 到 LPCSTR 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20834289/