我编写了一个pdf查看器,它使用各种用C编写的库。此C代码可能很容易被利用。而且要检查的线路太多了。我将不得不假设此代码可能包含可利用的错误。关键是C代码非常简单。一端输入字节流,另一端输出位图(也是字节流)。受谷歌浏览器的启发,我正在考虑创建一个单独的进程来进行解码和页面渲染。理想情况下,这应该在一个绝对无权执行任何操作的进程中执行,除了读取它拥有的一个输入流,并在另一端输出到字节流(一些未压缩的位图)。我认为进程不应该做的是:任何磁盘访问打开套接字内存使用量有限与其他进程访问共享内存加载其他dll...还有什么吗?这可能吗?这在某处有描述吗? 最佳答案
假设我正在编写一个调试器。如何在Windows系统上构建堆栈跟踪?我不需要列举符号等等;只是堆栈上各种函数调用的地址。我已经有了具有VM_READ访问权限的线程句柄。 最佳答案 比利,DBGHELP.DLL是你的friend。各种usefulfunctions对于那些希望执行调试器之类的事件的人...您可以在其中找到像StackWalk64这样的好东西和其他允许您指定要操作的目标进程的程序。当然,您可能需要确保您的调试器进程本身已被授予SeDebugPrivilege。玩得开心! 关于c
我有一个在Windows资源管理器中运行的程序。通常,如果没有其他程序在运行,它将使用2-3%的CPU(因此explorer.exe将在资源监视器中显示2-3%)。当我的程序未运行而另一个不会增加explorer.exeCPU使用率的程序正在运行时(例如FireFox),explorer.exeCPU使用率可以忽略不计。但是,当我的程序和另一个程序(如上所述)同时运行时,explorer.exe的CPU使用率将增加到8-10%。我注意到在Windows资源管理器中运行的其他程序也会发生同样的事情。有人知道为什么会这样吗?它是Windows固有的东西还是有其他程序可能导致这种情况?P.S
环境:WinXP、VisualC++我正在使用pthread_win32库来在我的程序中实现线程,我想将我的进程(程序)优先级提高到HIGH_PRIORITY_CLASS。库中是否有允许这种操作的函数?否则,是否可以将SetPriorityClass函数与`pthread_win32一起使用,或者我必须使用win线程以确保某种兼容性? 最佳答案 你可以获得一个本地线程句柄来调用SetPriorityClass与pthread_getw32threadhandle_np. 关于c++-使用
我有一个命令行应用程序,它根据用户提供的脚本执行其他程序。一些执行的子进程是cmd.exe运行各种.cmd脚本。一些.cmd脚本使用titleWindowsshell命令设置控制台窗口标题。这就是问题所在。如果用户请求记录子进程的输出,我使用标准句柄的管道来获取子进程的输出。然而,这似乎使子进程无法附加到我的应用程序运行所在的控制台,因此title命令停止工作,停止更改控制台窗口标题。是否可以创建一个具有重定向标准句柄但仍附加到父进程控制台的进程,以便title命令起作用? 最佳答案 显然,要将子进程附加到父控制台,所需要做的就是不
1)我正在寻找一个非常简单的示例,分别包含两个函数(Parent、Child),它们将创建一个子进程,然后将子进程连接到父进程(父进程可以访问子进程中的变量).请让示例尽可能简单,因为我很确定Windows代码是有意设计得尽可能复杂和困惑的。2)或者,我也愿意考虑替代WINAPI调用来创建父/子进程(只要它与Windows兼容)。编译器是code::blocks,操作系统是Vista。如果可能的话,最好与其他操作系统兼容(我知道WINAPI不是,但这是我知道的唯一方法)。如果这些函数与unix函数(例如fork)有相似之处,那就太好了。3)对于一个更难的替代方案,我怎样才能以这样的方式
我想使用MFC构建一个类似于应用程序的任务管理器。我已经成功地枚举了当前运行的各种进程的PID和内存使用情况。我的问题是我还想获得每个进程运行的线程数。 最佳答案 您可以使用Toolhelperlibrary来做到这一点(以及更多相关的事情)(win32)通过进程snapshot然后走路Thread32First/Next. 关于windows-如何使用MFC统计Windows中每个进程的线程数,我们在StackOverflow上找到一个类似的问题: http
我有一个使用某些第三方应用程序的Windows服务。该应用程序是从用于登录的单个窗口构建的,登录后该进程在后台运行,不会打扰任何人。我有打开这个应用程序的代码(使用Process类),填写所有必要的字段并点击连接按钮。当我从命令行或win窗体使用这段代码时,这段代码工作得很好,但是从Windows服务执行这段代码什么都不做——没有错误,也没有运行任何exe!我知道这听起来有点奇怪,Windows服务在设计上应该是无UI的,但是我需要在我的服务开始工作之前使用这个应用程序,我不想通过两个步骤来完成这个操作——使用午餐外部所有并启动服务。我试图从服务属性的登录选项卡中检查“允许服务与桌面交
我们有一个在各种环境中正常运行的应用程序。然而,在一个客户端站点,当应用程序调用子进程(在本例中为CODEFIND.EXF-请参阅随附显示)时,它会将处理器锁定在100%。我在解释显示方面需要帮助。虽然显示似乎是父进程正在消耗所有资源,但实际上是父进程调用了子进程吗?我怎么能说这个?谢谢,埃利奥特 最佳答案 显示表明罪魁祸首是java.exe。这个指示是正确的。子进程不消耗CPU。 关于Java进程占用CPU100%,我们在StackOverflow上找到一个类似的问题:
ProcessExplorer以某种方式获取此值并将其显示在每个进程的性能选项卡上...如何使用Win32API获取它?解决方案:在“PeakPrivateBytes”字段中,ProcessExplorer实际上显示“Process\...\PageFileBytesPeak”性能计数器。可以使用PSAPI函数GetProcessMemoryInfo轻松检索此值。 最佳答案 GetProcessMemoryInfo得到这个:PrivateUsageThecurrentamountofmemorythatcannotbesharedw