草庐IT

c++ - 我想确定动态链接库使用了多少内存

我想找出哪些库使用的内存最多。我想在我的应用程序中制作一种内存记录器。这需要以编程方式查找其自身进程中哪些库使用了多少内存。例如,我有一个程序使用了10MB的内存,其中有一个.dll使用了9MB的内存。我想查看所有的dll以及它们使用了多少内存。此应用程序将在Windows上运行。一切都需要以编程方式完成。 最佳答案 不确定这是否是最简单的方法,但也许您应该在加载每个库后立即Hook内存分配WinAPI函数。然后在你的钩子(Hook)中你将能够进行必要的计数查看MicrosoftDetours库作为一个很好的Hook框架(http:

windows - 在 64 位 Windows Server 2008 Standard SP2 IIS 7 上注册一个 dll

项目:VS2010C#类库。本地机器:Win764bit项目中更改了以下项目:属性/AssemblyInfo.cs[程序集:ComVisible(true)]项目/属性/构建选项卡:为Interop注册Com:选中生成序列化程序集:自动我已经根据以下帖子设置了带有接口(interface)、comvisible=true和guids等的测试类:BuildingaCOMinteroplibraryforASPClassicusing4.0frameworkandVisualStudio2010我能够通过regasm在我的本地机器上注册这个dll。C:\windows\Microsoft.

windows - __stdcall 没有任何修饰

我有一个.dll我怀疑使用了__stdcall函数,但是完全未修饰的名称(甚至没有下划线或@符号)。我为它写了一个.def文件,别名如func1=func1func1@4=func1但我认为lib(我用它从.def文件创建导入库)忽略了别名(链接器仍然说func1@4未定义)如何创建将func1@4映射到func1的导入库? 最佳答案 我不知道是否可以用lib.exe创建正确的.lib文件,所以我建议创建一个DLL,其中包含原始导出的函数stub动态链接库。示例dll.cpp文件:void__stdcallfoo(int){}dll

windows - C++ 如何导出地址表 Hook (EAT)?

我将如何进行导出地址表(EAT)Hook?我能够进行IAT(导入地址表)Hook。有人能给我举个例子吗?谢谢! 最佳答案 EATHook遵循与IATHook非常相似的方法,主要区别在于您查看的位置发生了变化,请查看Win32PEformat的PE文件导出部分。.可以找到一个非常简单的(虽然是C语言)示例here,如果确实需要以汇编形式编译和反汇编即可。 关于windows-C++如何导出地址表Hook(EAT)?,我们在StackOverflow上找到一个类似的问题:

c++ - Windows调用的DLL与主程序如何通信?

我正在尝试将SNMP代理集成到用nativeC++编写的Windows应用程序中。要使此代理成为WindowsSNMP代理的子代理,必须编写一个DLL来导出某些由WindowsSNMP服务调用的例程。到目前为止一切正常。现在这个DLL需要从应用程序中获取实际信息。我的第一个想法是让应用程序和DLL使用双方都可以访问的共享内存块,但这会使信息总是略显陈旧,最好在SNMP请求进入时运行一些代码来获取最新值。双方将读写信息。该应用程序已经有一个基于TCP的控制台接口(interface),但是对于来自SNMP客户端的非常频繁的请求,连接、查询、断开连接可能有点繁重。让DLL直接与应用程序通信

windows - 我在哪里可以获得 dll 以在 Windows 上的 Qt 中部署应用程序?

我的应用程序从QtCreator成功运行,但在资源管理器中它警告缺少dll等。我在包含.exe的目录中复制了QtCore4.dll、QtGui4.dll,但它滥用了与vs运行时相关的东西!screenshot(还有一个问题是QtCore4.dll,QtGui4.dll哪个合适,因为有些版本大小不同,我认为它们的组合可能会导致错误)我能做什么? 最佳答案 找出Qt应用程序需要哪些DLL文件的一种方法如下:从QtCreator启动应用程序。打开ProcessExplorer(由Microsoft提供)并从列表中选择您的申请流程。单击“查

windows - 如何在 Windows 上查询插件 DLL 的体系结构

我的应用程序使用LoadLibrary在运行时加载插件,用户可能会不小心尝试在我的应用程序的32位版本中加载64位插件。看起来从LoadLibrary返回的错误代码不是很清楚(说“%1不是有效的Win32应用程序”)。我正在寻找确定插件dll文件是32位还是64位的方法,以便我可以以用户友好的方式通知用户。有什么想法吗? 最佳答案 为了检索有关图像的信息,例如您要查找的图像,只需使用ImageHelpAPI 关于windows-如何在Windows上查询插件DLL的体系结构,我们在Sta

c# - 在启动时动态决定 Winforms 或 Wpf?

我有一个用例,如果有一个exe可以在启动时决定是托管仅WPF应用程序代码还是仅WinForms代码,这将很有用。一旦做出决定,exe将简单地加载一个dll(对于WinForms)或一个不同的dll(对于WPF)。我希望exe具有尽可能少的代码(和引用),并将大部分(如果不是全部)应用程序逻辑放在一组dll中。这是我的想法:MyApp.exeMyApp.exe将仅引用WinForms和WPF通用的.NET框架程序集。(所以,System、System.Core、System.Data、System.Xml等)然后它会动态加载对MyApp.Windows.dll或MyApp.Windows

objective-c - 如何通过 apple libobjc.dll 在 mingw64-x86 中使用 clang 编译 objective-c 源代码?

我在windows平台上编译objective-c源代码时遇到问题。当然在windows平台上编译objective-c源码,我们通常使用gnustep环境(gccobjecitve-c编译器.gnusteplibojc动态库.gnustep基础框架...等)。但我想要一个干净的环境尝试编译器objective-c,并使用不同的libobjc库。从macosx10.6开始。apple将macosx系统移动到x86平台(不再支持ppc),并通过cocoatech.includeiTunes重写系统应用程序。iTunes有windows版本。通过在安装iTunes后搜索系统文件夹。我在以下

windows - 如何检查哪个应用程序正在使用 msvcr80.dll?

我有一个.exe,它是使用发布配置使用MSVC2005编译的。问题是,当我将此.exe分发给其他人时,他们收到此消息:“此应用程序无法启动,因为应用程序配置不正确。为了解决问题,您应该重新安装该应用程序。”我给了他们vcredist.exe,它解决了问题。但是,我想知道为什么这只发生在某些PC上?到目前为止,我有1台无法运行.exe的PC和另一台可以运行.exe的PC。两者都安装了相同的应用程序。能运行我的.exe的电脑安装了msvcr80.dll,不能运行的电脑没有安装msvcr80.dll。有谁知道为什么有些电脑没有安装msvcr80.dll?由于两台PC安装了相同的操作系统和应用