草庐IT

c++ - 如何获取当前进程的线程 ID 列表

EnumProcess或CreateToolhelp32Snapshot函数帮助我们获取进程信息,包括进程ID。但是我想知道获取当前进程的线程id列表。DWORDGetMainThreadId(DWORDpId){LPVOIDlpThId;_asm{moveax,fs:[18h]addeax,36mov[lpThId],eax}HANDLEhProcess=OpenProcess(PROCESS_VM_READ,FALSE,pId);if(hProcess==NULL)returnNULL;DWORDtId;if(ReadProcessMemory(hProcess,lpThId,&t

c++ - 有关虚拟文件夹的文档

我正在寻找有关如何制作虚拟文件夹的WindowsAPI文档。我将制作我自己的文件系统,并希望在该文件系统的“计算机”下有一个图标。我见过其他具有此类解决方案的程序,例如允许我在Explorer程序中探索Linux文件系统的程序。很像我要制作的相同解决方案。我还没有找到任何关于如何执行此操作的文档,或者我在搜索错误的东西吗?谢谢。 最佳答案 您正在寻找Shell命名空间扩展。文档的入口点是CreatingShellDataSourceObjectsandExtendingtheShellNamespace.可以在codeplex上找到

c++ - 在 ring0/kernel 中列出驱动程序?

只是一个问题,我想知道是否可以连接到Ring0/Kernel以显示在内核中运行的已加载驱动程序列表?我是否需要为此编写驱动程序?类似于如何轻松列出所有正在运行的进程。哦,这是在C++/Windows中。 最佳答案 正如我所说,使用driverquery命令。driverqueryDisplayalistofallinstalleddevicedriversandtheirproperties.Syntaxdriverquery[/sComputer][/uDomain\User/pPassword][/fo{TABLE|LIST|C

c++ - 正则表达式迭代器在 Cpp 中不起作用

我在VisualStudio2010上使用C++(我不认为它是v11标准,但我还没有检查过)。我正在尝试使用以下代码提取tracert的IP地址:#include#include#include#includeusingnamespacestd;typedefregex_iteratorregexp;#defineMAX_BUFFER255intmain(){stringout;charbuffer[MAX_BUFFER];smatchm;regexe("1.+\\[(.+)\\]");FILE*stream=_popen("tracertSOMEHOSTNAME","r");whil

c - wdm.h中类型名称 'R'中的 'PRKMUTEX'是什么意思?

从wdm.h中摘录的一个简短示例typedefstruct_KMUTANT{DISPATCHER_HEADERHeader;LIST_ENTRYMutantListEntry;struct_KTHREAD*OwnerThread;BOOLEANAbandoned;UCHARApcDisable;}KMUTANT,*PKMUTANT,*PRKMUTANT,KMUTEX,*PKMUTEX,*PRKMUTEX;我知道“P”是指“指针”,但我不知道“R”是什么意思。有什么解释吗? 最佳答案 R将指针标识为restrictedpointer.

c++ - WinApi SetTimer 无法编译

我需要定时器每1秒启动一次功能。我试过SetTimer,我的代码:constUINT_PTRTIMER_ID=1000;DWORDDownloadThread(){SetTimer(NULL,TIMER_ID,1000,(TIMERPROC)DownloadSpeedCounter);/*somestuff*/}voidDownloadSpeedCounter(){/*somestuff*/}我无法编译此代码并得到errorC2440:'typecast':cannotconvertfrom'overloaded-function'to'TIMERPROC'也是类成员方法。

c++ - 我可以从语言首选项中获取代码页吗?

Windows似乎至少跟踪“当前语言环境”的四个维度:http://www.siao2.com/2005/02/01/364707.aspx默认用户区域设置默认系统区域设置默认用户界面语言默认输入区域我的大脑很痛,只是试图跟踪四个不同的语言环境到底有什么用......但是,我没有理解代码页和语言环境(或LCID,或语言ID)之间的关系,所有这些似乎都不一样(例如日语(日本)是LANGID=0x411位置代码1,但日本的代码页是932)。在Unicode和窄字符串之间转换时,如何配置我们的应用程序以使用用户所需的语言作为默认MBCS目标?也就是说,我们以前是一个MBCS应用。然后我们切换

c++ - IFileOperation::DeleteItems 在 Windows 8 上不要求确认(与 Windows 7 不同)

我正在尝试使用IFileOperation::DeleteItems在Windows上删除文件。在Windows7上,当我调用IFileOperation::PerformOperations`时,系统会询问我是否要先删除文件。但在Windows8上,它不要求确认,只是将文件移至垃圾箱。这就是我所说的提示:代码如下:result=iOperation->DeleteItems(iArray);if(SUCCEEDED(result)){result=iOperation->SetOperationFlags(FOF_ALLOWUNDO);assert(SUCCEEDED(result)

C 中的跨平台目录路径验证(Linux 和 Windows)

我有一个接受目录路径作为字符串的C函数。该函数在给定路径处创建一个目录。intcreate_directory(constchar*path){//givenpathmaybeabsoluteorrelative//step1:-needtovalidatethegivenpath(crossplatformforbothLinuxandwindows)//whatarethecriteriaforpathvalidation?//step2:-checkpermissionaboutuseraccessibility,meanscannotcreatedirectory,ifpath

c++ - 如何将文件夹中的文件名存储到 C++ 中的数组?

这个问题在这里已经有了答案:HowcanIgetthelistoffilesinadirectoryusingCorC++?(33个答案)关闭9年前。我是c++的新手。我想编写一个从文件夹中获取名称的函数。例如,我有一个名为C:\TEST的文件夹,在这个文件夹中我有很多text.txt文件,我想将所有.txt文件名存储在一个字符串数组中。任何人都可以帮助我解决这个问题。我试过类似的方法,但我失败了constintarr_size=10;some_typesrc[arr_size];//...some_typedest[arr_size];std::copy(std::begin(src