草庐IT

AppInit_DLL

全部标签

c++ - 编译 dll 项目时生成的 .lib 文件有什么用,我可以将它用于静态链接吗?

这个问题在这里已经有了答案:HowdoestheImportLibrarywork?Details?(5个答案)关闭5年前。想问下编译dll项目时生成的.lib文件有什么用当我们编译我们的项目时,会生成以下文件:.dll.exp.lib.pdb现在我们也有了.lib文件,我们可以使用这个文件将它静态链接到任何其他项目吗?如果不是,那么生成这个.lib文件有什么用。

windows - qt 5.2.0 windows 7 缺少 dll(程序崩溃)

尝试运行Windows7、Qt5.2.0程序,它立即崩溃。我有mingw48_32版本和32位版本的Qt5.2.0。我没有VisualStudio,虽然我确实下载并安装了一些2010VSSDK和.Net框架的东西,仍然没有运气。我试图搜索这些东西无济于事。如果它在我机器上的某个地方我还没有找到它们。运行dependencywalker后,它显示以下缺少的DLL:GPSVC.DLLIESHIM.DLLAPI-MS-WIN-SHCORE-SCALING-L1-1-1.DLLAPI-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLLAPI-MS-WIN-CORE-WINR

windows - 发布Qt项目时如何设置Qt dll的相对路径?

当我发布我的Qt项目时,我想重新分发QtCore4.dll和QtGui4.dll文件与我的项目,但不是在与我的.exe相同的目录中(在其他一些相对路径中)。如何让我的.exe自动找到它们?我也不想在客户的环境中设置%PATH%或任何其他环境变量。 最佳答案 可能最安全的方法是使用一个脚本来启动您的应用程序,该脚本会在启动您的应用程序之前更改PATH(但仅针对该session)。这是我用来启动自定义版本的QtCreator的脚本:setPATH=%PATH%;C:\Qt\qt474_custom_msvc2008_x64\lib;C:

c++ - 如何在不链接 kernel32.dll 和 ntdll.dll 的情况下运行 PE 镜像

我试图写一个peloader。我首先将可执行镜像及其所有依赖的dll(包括kernel32.dll和ntdll.dll)加载到内存中,处理所有导入地址表,重写所有需要重定位的数据。然后我按顺序调用所有图像的入口点。我从ntdll.dll的入口点得到返回码0,但kernel32.dll返回0xC0000000。当我尝试调用可执行镜像的入口点时,程序崩溃了。我知道windows系统在创建进程时已经将ntdll.dll和kernel32.dll加载到进程内存中。我的问题是如何将ntdll.dll和kernel32.dll的另一个拷贝加载到内存中,并将我的模块链接到拷贝。我做了一个实验:1.复

windows - 分析 .exe/.dll (Windows PE) 文件中的代码膨胀

假设我有一个包含十几个不同模块的项目,这些模块生成一个DLL,我如何分析它以便确定每个模块/函数贡献的实际文件大小?我知道使用发布版本可能无法实现,其中很多信息已被剥离,但如果我有完整的源代码并且可以进行调试版本呢?此外,如果某处定义了较大的静态变量,我是否可以轻松找到它们?奖励问题:LinuxELF文件怎么样? 最佳答案 每当我参与识别膨胀时,我通常从dumpbin开始在Windows上。通常通过编写工具通过dumpbin检查每个对象模块然后分析输出。它往往是一个迭代过程,可能需要相当长的时间。用于使用PDB进行调试构建Sizer

windows - D 运行时作为 DLL

有谁知道是否至少D运行时和D2的Phobos将被预先构建为DLL,或者至少准备好以这种方式进行编译?目前,据我了解,它需要将所有相关函数和/或类标记为导出。在DMD的当前来源中找不到任何类似的东西。谢谢。 最佳答案 目前,Phobos可作为预构建的LIB文件使用,该文件在编译期间静态链接到您的可执行文件。这对DLL有一些好处:部署-您始终可以确保您的可执行文件具有适当的运行时/gc/phobos可用-与您的应用程序一起测试的那个。每个月都有新版本的Phobos和D运行时,在这种情况下使用DLL可能会导致版本控制问题。缺点可执行文件的

c++ - 如何在注入(inject)的 DLL 中正确终止工作线程?

我正在将一个DLL注入(inject)某个进程,该DLL有一个正在运行消息循环的工作线程。我想正确退出线程,即发布退出消息(PostThreadMessage)并等待它(WaitForSingleObject)。我在哪里可以等待这个线程关闭?我不能在DLL_PROCESS_DETACH上执行此操作,因为到那时所有线程都已关闭或终止,而且我不知道进程何时关闭。我唯一的想法是,有没有办法拦截主线程消息循环并查找WM_CLOSE\DESTROY消息?我很想听听任何其他想法\解决方案。编辑:尝试使用带有WH_CALLWNDPROC的SetWindowsHookExHook主线程,但效果不佳,我

c++ - 外部 dll 中缺少 Qt 信号

我在我的应用程序中使用的库irisxmpp库中有信号。在MacOSX和Linux上一切正常,但Windows会产生一大堆信号未找到警告。warning:QObject::connect:signalnotfoundinXMPP::AdvancedConnectorwarning:QObject::connect:signalnotfoundinXMPP::AdvancedConnectorwarning:QObject::connect:signalnotfoundinXMPP::AdvancedConnectorwarning:QObject::connect:signalnotfo

c++ - 使用 dll 时出现 .lib 错误?

我正在尝试使用WindowsDLL(不习惯它们)进行一些练习。我关注了这篇文章:http://msdn.microsoft.com/en-us/library/ms235636(v=vs.80).aspx言归正传。然而,我收到了这个错误:1>链接:fatalerrorLNK1104:无法打开文件'..\debug\math.lib'我的项目是dll项目,不是lib。并且根本没有从我的项目中创建库(整个解决方案)。有人知道哪里出了问题吗? 最佳答案 如果dll实际上不导出任何内容,VS不会创建导入库。要快速检查是否属于您的情况,请找到

c++ - 文件能否同时是可执行文件 (EXE) 和动态链接库 (DLL)?

文件是否可以同时是可执行文件(EXE)和动态链接库(DLL)?(即它可以作为EXE文件执行并在运行时作为共享库加载。)我不明白为什么不可能,但也许有人可以给出解释? 最佳答案 来自LoadLibrary文档:Thenameofthemodule.Thiscanbeeitheralibrarymodule(a.dllfile)oranexecutablemodule(an.exefile).Thenamespecifiedisthefilenameofthemoduleandisnotrelatedtothenamestoredint