草庐IT

内存表

全部标签

windows - 将 hwnd GDI 调用重定向到系统内存位图?

我有一个第3方ActiveX控件,我想在其他表示技术(Direct3D和WPF)中呈现。为此,我需要ActiveX渲染到系统内存位图而不是屏幕。我知道有办法做到这一点,但不知道从哪里开始。我不害怕做任何native方法Hook,但我不确定从哪里开始。我在想BeginPaint(...)可能是热门票...有没有人这样做过或看到过周围的例子/sample?顺便说一句,我不想​​做WM_PRINT类型的解决方案。我宁愿此代码是被动的,而不是主动的并强制hwnd重新绘制。编辑:两个答案对我来说都是正确的,所以我给了每个答案+1。我希望有一个较低级别的解决方案来更加灵活,但目前这已经足够了。

windows - GetIpAddrTable() 泄漏内存。如何解决?

在我的Windows7机器上,这个简单的程序会导致应用程序的内存使用量不断上升,没有上限。我已经删除了所有非必要的内容,看起来罪魁祸首显然是MicrosoftIphlpapi函数“GetIpAddrTable()”。在每次调用时,它都会泄漏一些内存。在循环中(例如检查网络接口(interface)列表的更改),它是不可持续的。似乎没有异步通知API可以完成这项工作,所以现在我面临着可能必须将此逻辑隔离到一个单独的进程中并定期回收该进程——一个丑陋的解决方案。有什么想法吗?//IphlpLeak.cpp-demonstratesthatGetIpAddrTableleaksmemoryi

windows - 在 Windows 7 中更改内存和 CPU 使用率

我想用低性能硬件的Windows机器进行测试。不幸的是我有一台更高端的机器。有没有办法限制CPU和RAM内存使用的性能?我可以通过任何其他软件来完成吗?还是可以通过Windows操作系统本身来完成? 最佳答案 您可以使用VMWare来限制内存。您将无法限制虚拟机中的处理器速度,但您只能为其分配1个内核。 关于windows-在Windows7中更改内存和CPU使用率,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c++ - 我的内存在哪里?

我有一个简单的应用程序,它使用ffmpeg进行解码。通常它工作得很好。但是,当我尝试播放某个文件时,它开始占用我的内存。即使我释放解码器使用的所有资源,内存也不会被释放。我已经尝试运行内存泄漏检测器(英特尔并行检查器),但它没有检测到泄漏,因为内存可能在关机期间被释放。我的问题是如何查看在运行时分配的内存位置和数量?编辑:添加了windows标签。 最佳答案 尝试使用带有选项--leak-check=full的valgrind来查看是否有内存泄漏。http://valgrind.org/编辑:现在我看到目标平台是windows,这个

windows - 在 Windows 上,内存中的数据是否可以跨虚拟内存页面连续存在?

在Windows上,内存中的数据是否可以跨虚拟内存页连续存在?例如,字符串“hello”,其中“he”在一页上,“llo”在下一页。任何超过最大页面大小的大数据block(如果可能)。 最佳答案 当然。内存页面可能不会连续出现在物理内存中,但通过虚拟内存的魔力,您的程序不会变得更聪明。 关于windows-在Windows上,内存中的数据是否可以跨虚拟内存页面连续存在?,我们在StackOverflow上找到一个类似的问题: https://stackover

c++ - 修改编译后的可执行内存分配

我有一个无法访问源代码的已编译可执行文件。每次运行时,都会将一个变量分配给内存地址0x7B008C。我试图让它每次都使用不同的地址而不是那个地址。它不必是动态的,因为我的目的只是破坏当前存在的修改源程序行为的应用程序。所以我的问题是,在不破坏程序行为的情况下实现这一目标的最简单方法是什么? 最佳答案 一般来说,你不能。编译可执行文件时,链接器在机器代码中将对静态变量的引用解析为变量的原始地址。没有迹象表明存在这样的引用,并且由于x86机器代码的性质,以后很难找到这些引用(您不一定能清楚地知道指令从哪里开始)。此外,您不知道那是否只是

c - 在 win32/C/C++ 中共享内存和 IPC 的最快进程技术

我正在编写一个导出标准化接口(interface)(VST)并由外部应用程序托管的实时库。库必须发布一个表,该表可以被同一进程中的任何线程查看(如果它知道在哪里查看)——明确地说,这个表必须可以被进程空间中的所有dll查看——如果他们知道在哪里查看看。访问表必须很快。虚拟内存似乎有点矫枉过正,我考虑过使用窗口句柄(现在仍然可以)来消息泵,但我更喜欢一种更快的方法,如果有的话。此外,PE中的共享数据段是我希望尽可能避免的。我想我几乎宁愿使用窗口句柄。我目前不关心同步,事后我可以处理。我只是想要一些关于在进程空间内发布表的最快技术的建议。 最佳答案

c# - 进程被杀死后可能导致内存泄漏?

我正在编写一个生成并终止Chrome浏览器的应用程序。虽然我以编程方式终止进程(与通过Windows任务管理器终止进程的效果相同),但有人建议这也可能导致内存泄漏——即来自内核资源等元素,这些元素未与原始进程正确关联.在进程被终止后,应用程序是否可能泄漏内存或以其他方式拥有不可回收的内存? 最佳答案 这可能会发生,但当它发生时,它永远不会是程序中的错误。它总是由Windows内核代码或某些内核驱动程序中的错误/错误引起。此外,您甚至不太可能在Windows的标准安装上遇到此类行为。 关于

.net - 禁用交换(页面文件)以确保所有内容都在内存中

我有几个需要实际内存的应用程序,它们消耗了大量的内存。一种解决方案是将应用程序内的每一block内存都锁定(VirtualLock),但这需要很多时间才能正确执行,因为应用程序是在.NET中。所以,我的问题是,禁用交换文件(我的机器上有足够的RAM)是否是确保所有内容都真正在内存中的有效策略?更新:让我重复一遍——我知道这可能是一种非常肮脏的做事方式,并且可能会破坏整个操作系统的运行,但是,我会承担全部责任并应对后果,只想知道我可能会做什么遇到问题。以下是其他StackExchange用户的看法:https://serverfault.com/questions/23621/any-b

c++ - 检测 C++ Windows 应用程序中的内存泄漏

我有一个C++Windows应用程序,它有一些内存泄漏问题。是否可以使用NTSD分析转储中的内存泄漏?如果是这样,请指导我该怎么做?我还听说我们可以使用用户模式转储来完成。我不太熟悉在Windows中查找泄漏。在Linux中使用Valgrind非常容易。有没有其他更好的选择来检查这个? 最佳答案 seehere有关视觉检漏仪的详细信息。我在Windows上使用过它。您在应用程序中所做的就是#include您将在调试程序时看到有关在终端中检测到泄漏的报告,如下所示:----------Block1199at0x04BE1058:136