草庐IT

c++ - 如何捕获来自另一个进程的退出消息?

我想“监听”其他一些应用程序并决定在它终止时做什么。如何?编辑:这两个程序在同一台计算机上运行,​​我想知道何时关闭另一个程序。然后在另一个程序中执行操作。我无法修改其他程序代码。我可能会也可能不会从应用程序A启动应用程序B。我可以通过其到exe的完整路径来识别应用程序B。 最佳答案 正如Abyx所写,WaitForSingleObject(或者可能是WaitForMulipleObjects)是您需要的API函数。创建事件启动一个(工作)线程将事件句柄传递给线程->HANDLE1获取要监视的进程的句柄。参见HowcanIgetap

c++ - 只有逐步调试,代码才能正常运行

我正在制作一个网络服务器,但我遇到了一些非常奇怪的问题。我的服务器运行正常昨天当我关闭我的笔记本电脑时,但今天它只发送httpheader(我没有改变任何东西)当用户请求文件时,如果我使用以下代码发送给他们,它会完美地工作:while((n=fread(data,1,sizeof(data),file))>0)发送(ts,数据,n,0);但如果我将其更改为此,它只会发送文件的~2%。这不是一个随机数,它实际上只发送了大约2%的文件。while((n=fread(data,1,sizeof(data),file))>0)web.Send(data);intWEB::Send(string

c++ - 从 C++ 类制作 Visual C++ DLL

我有以下C++代码来制作dll(VisualStudio2010)。classShape{public:Shape(){nshapes++;}virtual~Shape(){nshapes--;};doublex,y;voidmove(doubledx,doubledy);virtualdoublearea(void)=0;virtualdoubleperimeter(void)=0;staticintnshapes;};class__declspec(dllexport)Circle:publicShape{private:doubleradius;public:Circle(dou

c++ - 注册文件 - "dword"转换成什么?

我有一个正在尝试读取的reg文件。某些值中有一个类型“dword”..."check"=dword:000001f4"blah"=dword:000000c8"test"=dword:00000000"hello"=dword:00000000我应该将它转换成什么C++类型?以及如何? 最佳答案 dword是一个双字,其中一个字是旧的(Intel8086)16位字。因此,它转换为WinAPI特定类型DWORD,或标准C(但还不是标准C++)类型uint32_t。C++03保证unsignedlong足够大以容纳32位值,但在64位平

c++ - 如何正确比较两个无符号字符?

比较两者BYTEPhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];来自IP_ADAPTER_ADDRESSESStructure其中字节在Windows中定义为typedefunsignedcharBYTE;我需要比较内存吗?谢谢! 最佳答案 注意:PhysicalAddress的定义,如文档中所述,是BYTEPhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];即它是BYTE的数组秒。不过,您可以轻松地将它们与memcmp进行比较。来自(或如果您使用的是C++

c++ - 如何检测隐藏进程

想知道“ProcessExplorer”或“ComboFix”等应用程序如何检测隐藏进程???我假设这必须用C或C++完成。即使在.NET中也很容易访问进程列表,但这并不总是准确的,我知道根工具包可以从任务管理器中隐藏自己。是通过内存访问和IO吗?好奇是否有人知道这是如何实现的。 最佳答案 这个问题无法回答。这取决于该过程最初是如何隐藏的。例如,有人可以通过向HookEnumProcesses、Process32Next等的所有进程以及与进程枚举相关的所有其他API注入(inject)用户模式​​DLL来隐藏进程。这将被跳过钩子(H

c++ - 我必须在 VS 2008 中使用 "Visual"C++ 吗?

我是VisualStudio2008(.NETFramework3.5)的新手,正在开发Windows窗体应用程序。启动IDE,新建项目的唯一选项在类别下:视觉基础VisualC#VisualC++我做了VisualC++->CLR->WindowsFormsApplication但是,模板代码在“VisualC++”语法中。如何使用VisualStudio2008使用普通C/C++创建新的GUI项目?请注意,我上次这样做是在VisualStudioC++6.0中使用MFC如果我遗漏了基本原则,请解释。谢谢!示例:http://msdn.microsoft.com/en-us/libr

c++ - 使用 C++ AMP 库

我正在尝试开始使用图书馆。但是当我输入#includeamp.h,我收到一条错误消息,提示无法打开源文件.我需要做什么特别的事情才能使它可用吗?#include#include#include 最佳答案 C++AMP不仅需要amp.h头文件,还需要一个新的编译器(例如,为了理解restrict关键字)。VS11的开发者预览版(您可以下载到Windows7机器上的那个,或者Windows8的开发者预览版图像附带的那个)有您需要的编译器。您现有的VS2010(或其他)拷贝没有。将头文件放入您的包含路径是不够的。如果您有正确的编译器,您会

c++ - 搜索.exe的路径

所以我正在寻找一段代码,它允许我搜索正在执行的文件的路径。例如,我正在做一个用于pendrives的自动运行程序(示例),但我不知道不知道它是否会以D:、F:、G:或其他形式结束,所以程序会搜索它自己的路径并使用一些“if”语句根据找到的路径打开另一个文件。这是我的想法:#include#includeusingnamespacestd;intmain(){//Insert'searchpath'codeandneededvariableshere.if(-ThePath-=="d:\\AutoRun.exe"){system("d:\\MyFolder\\OtherProgram.e

c++ - 使用 C++ 获取 Windows 文件信息

有没有什么方法可以使用C++检查Windows文件的某些属性?需要的格式是上次访问日期、MIME类型、...对于其他一些信息提取,我正在使用Boost文件系统。提前致谢 最佳答案 对于文件修改日期,您可以直接使用Windows的API(GetFileTime())或使用boost::filesystem::last_write_time().至于MIME类型,据我所知没有真正的API。您基本上必须阅读注册表项HKEY_CLASSES_ROOT\.并寻找一个值ContentType.如果有,它包括为扩展设置的MIME类型。