草庐IT

c++ - 扫描更改的文件

我正在寻找一种在WindowsXP+中扫描目录结构以查找更改文件的高效方法。像git那样做的事情正是我正在寻找的,当运行gitstatus时,它会非常快速地显示所有修改过的文件、所有新的(未跟踪的)文件和删除的文件,这正是我想要的喜欢做。我有一个启动并运行的基本模型,它执行初始扫描并存储所有文件名、大小、日期和属性。在随后的扫描中,它会检查大小、属性或日期是否已更改并将标记为已更改的文件。我现在的问题是检测移动和删除的文件。有没有针对这种事情的久经考验的方法?我正在努力想出一个好方法。我应该提一下,它最终会使用ReadDirectoryChangesW来监视文件并在发生变化时提醒用户,

c - select 中可以使用相同的 fd 进行读写

我希望对读取和写入操作使用相同的套接字fd。假设“fd”是我当时正在处理的那个FD_SET(fd,&readfd);FD_SET(fd,&writefd);select(fd+1,&readfd,&writefd,0,200):会保持良好状态,否则会返回错误。我认为因为writefd和readfd是不同的集合,所以可以在两个集合中设置相同的fd。如果我错了,请纠正我。谢谢阿皮特感谢您的快速响应..我可以在轮询POLLIN和POLLOUT中对相同的fd执行相同的行为吗? 最佳答案 这没问题,也是监控同一个fd读写的正确方法。selec

c++ - 从命令行应用程序调用 Windows 通用对话框

是否可以调用Windows通用对话框并从命令行应用程序中检索其输出?我想构建我的大部分应用程序以从控制台运行,因为在我的特定情况下它会严重降低复杂性;但是,我希望能够弹出一个文件夹选择器对话框,让用户选择一个目录。我只是想避免创建成熟的GUI应用程序的开销。我会在C++中执行此操作,如果这会产生影响的话。 最佳答案 #include#include#includeintmain(){BROWSEINFObi={0};bi.lpszTitle="PickaDirectory";LPITEMIDLISTpidl=SHBrowseForF

C++ 事件 Hook

我正在尝试了解C++中的事件Hook。我知道什么是事件,我在Java、C#和Javascript中经常使用它们。我遇到的问题是查找有关全局Hook、dll注入(inject)、没有DLL的全局Hook等内容的文档和教程。假设我想遍历FireFox中的浏览器选项卡...我需要希望FireFox有一个用于C++的API吗?或者假设我想在用户打开新选项卡时执行某些操作,我是否需要使用FireFox在其API中提供的Hook?以上只是一个例子,所以人们知道我想学习/理解什么。我的想法是否正确?我在论坛上看到了一篇帖子,在过去的2小时里我对此很感兴趣。我总是说,一个棘手的挑战,或一个新的挑战,会

c++ - 如何在visual studio 2008中进行调试

我一直在为外部库cpp文件中的错误获取这些行号,我无法知道我的代码的哪一部分导致了这个错误。有时它甚至会在崩溃的地方显示汇编代码片段......如何获取我自己的代码导致此错误的行?或者至少是我的代码的哪一部分导致了这次崩溃的线索......有时它甚至不告诉任何行号,我真的不明白这种Debug模式是如何工作的。我用过applicationverifier,它有时会给出一些行号。它看起来像是随机告诉我这些事情...我该如何解决这个问题?这是我得到的:First-chanceexceptionat0x7c812aebintest.exe:MicrosoftC++exception:std::

c++ - 如何使用 ffmpeg 以便不需要将其 dll 包含在您的应用程序文件夹中?

所以我的观点是为c/C++Windows开发人员找到.lib形式的普通ffmpeg,以便能够在我的应用程序中包含所有需要的功能——也就是说一个exe没有额外的dll。所以我正在透过它的window看/autobuilds/搜索这样的.lib文件数组。至于现在最接近我想要的是带有.lib和.dll.a文件的ffmpeg-swscale-mingw32-shared-dev\lib文件夹。问题是我对C/C++开发还很陌生,所以我想知道这个构建是我需要的还是我需要其他东西?毕竟ffmpegmingw32共享开发版本中的.dll.a文件是什么? 最佳答案

c++ - 一般 C++ Linux 到 Windows 移植问题

背景:一个基于网络的服务(tcp+udp,而不是http)存在于一个即将公开发布的C++linux客户端API。此客户端API使用普通的tcp套接字、udp套接字、C++命名空间和部分STL,如std::map和std::vector,并将作为一个集合发布头文件和要链接的.a和.lib文件。问题:刚开始研究如何将此C++客户端API移植到Windows。在Windows下使用gcc/g++有意义吗?我的第一个想法是这行不通,因为Windows上的开发人员通常使用MicrosoftVisualStudio套件,并且他们无法链接到gcc生成的库。这是一个正确的假设,还是gcc提供了一些漂亮

windows - 关于turbo c的问题

谁能告诉我哪个版本的turboc可以在Windows7上运行,以及从哪里可以免费下载... 最佳答案 可以下载here.这是来自Embarcadero网站;它确实需要注册才能下载。我不知道您是否能够在Windows7上使用它。我最近在DOS6.22VM上安装了BorlandPascal7,只是为了好玩;BP7无法在64位Windows7上运行。如果您的目标是Windows平台,您是否考虑过查看VisualC++Express?它是免费的,而且非常实用。 关于windows-关于turbo

c++ - 返回 char* 函数的内存管理

今天,我没有多想,写了一个简单的函数,根据给定枚举值的switch语句返回一个char*。然而,这让我想知道如何释放那段内存。我所做的是这样的:char*func(){char*retval=newchar[20];//Switchblahblah-willalwaysreturnsomevalueotherthanNULLsincedefault:returnretval;}如果这是一个天真的问题,我深表歉意,但是释放内存的最佳方式是什么,因为我无法在返回后删除内存,显然,如果我之前删除它,我将不会有返回值.我认为可行的解决方案是这样的voidfunc(char*&in){//bla

c++ - 有没有办法,或者说 'accepted'是什么办法让所有windows都运行在当前进程下?

如何从另一个应用程序的进程地址空间获取它正在使用/显示的每个窗口的句柄?我知道您可以获得进程中所有当前运行线程的快照http://msdn.microsoft.com/en-us/library/ms686701(v=vs.85).aspx但我想知道是否有办法使用THREADID然后获取一个hwnd值,您可以使用IsWindow(hwnd)进行测试,或者从逻辑上讲,如果您可以获得hwnd,难道您不知道您已经有了一个值窗口?但我想知道这是否可行,或者这是否确实是一种明智的方法?谢谢。 最佳答案 您可以使用EnumThreadWindo