我正在尝试通过 MSDN 上的示例(https://msdn.microsoft.com/en-us/library/windows/desktop/aa365736%28v=vs.85%29.aspx)了解如何在为了跟踪 NTFS 驱动器上的文件更改。示例代码运行良好。
但是,在此示例代码中,USN_RECORD 结构仅返回文件引用号和文件名。它不会返回文件的完整路径。有谁知道如何查询 USN 日志以返回完整路径?或者有没有办法从文件参考号中获取完整路径?
谢谢。
StringCbCat:http ://msdn.microsoft.com/en-us/library/windows/desktop/ms647495%28v=vs.85%29.aspx StringCchCat: http: //msdn.microsoft.com/en-us/library /windows/desktop/ms647518%28v=vs.85%29.aspx
目前我正在编写一个C++程序来处理TCHAR字符串.我发现这两个Windows API,一个是StringCbCat,另一个是StringCchCat.它们似乎都能够为TCHAR字符串执行strcat()函数.但如果它们是相同的,为什么给它们两个不同的名字呢?我试过谷歌但没有运气.
谁知道有什么区别?或者他们是一样的?
PS.其他StringCbxxx和StringCchxxx函数也是如此,例如StringCbLength和StringCchLength
我已经使用C++已经有一段时间了,但有一个基本概念我无法理解.首先,我将列出两种将文本字符串分配给char*的方法.
方法1:
char * str = "Hello World";
Run Code Online (Sandbox Code Playgroud)
方法2:
char * str = new char [12];
strcpy(str,"Hello World");
Run Code Online (Sandbox Code Playgroud)
我对方法2非常熟悉.方法1让我头疼.我的问题是
我读过无数的C++教科书和文章.他们都告诉我方法1的工作没有详细说明反响.我自己的实验并没有产生令人信服的结果.
谢谢(也许请原谅我的英语不好)
编辑:实际上我在VS2015中使用带有tchar字符串的WinAPI编程,方法1编译完美.使用Unicode处理时,std :: string非常糟糕.
想象一下,在解决方案中有两个项目,一个是Unicode,另一个是多字节,这两个项目使用相同的库.在这个库里面,最好使用tchar.std字符串你必须明确告诉它是哪个版本.
我必须这样做,因为多字节项目是我需要注入另一个应用程序的DLL.DLL的unicode版本将使应用程序崩溃,只有多字节工作.