草庐IT

c++ - Windows 8 上的 DLL LoadCount

有谁知道Windows8上的LDR_MODULE.LoadCount在哪里?下面的代码总是为引用计数打印6:S我检查了RemoteDLLTool和基地址,所有其他信息都是正确的。但是,LoadCount是错误的,因为它始终为6。我读到如果它是6,则表示DLL是动态加载的,如果是-1,则它是静态的。还有没有一种方法可以只迭代链表而不必不断地读取进程内存?我需要以某种方式计算出引用计数。基本上,Windows7上的以下代码会告诉我加载DLL的次数。也就是DLL的引用计数。#includetypedefstruct_LDR_MODULE{LIST_ENTRYInLoadOrderModule

c++ - 无法将 WSPStartup 设置为 dll 导出

我正在尝试为winsock编写LSP,根据MSDN文档,dll应该导出单个函数即。Ws2spi.h中定义的WSPStartup()编译时出现错误:errorC2375:'WSPStartup':redefinition;differentlinkage如果我追加__declspec(dllexport)指令。另一方面,如果我使用__control_entrypoint(DllExport)它编译得很好,但实际上并没有导出函数。我使用依赖项查看器进行了检查。为了确保其他LSP实现是否导出函数,我在VMWaresvsocklib.dll和mswsock.dll上使用了依赖项查看器,这两个d

解决Windows找不到api-ms-win-eventing-provider-l1-1-0.dll问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-eventing-provider-l1-1-0.dll文件进行安装(前提是找到适合的版本),当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此安装好之后就能重新打开你的软件或游戏了.那么出现api-ms-win-eventing-provider-l1-1-0.dll丢失要怎么解决?一、手动从本站下载dll文件1、从下面列表下载api-ms-win-eventing-

c++ - 从 DLL 导出静态库符号

我将FacadeDLL用于静态库。Dll提供了一个小型接口(interface)和资源管理,可在多个DLL之间共享。Dll-Header确实公开了静态库中的内容:classDLL_EXPORTMyDllClass{public:///...OneStaticLibClass*ptr;};问题是:如果这可行,我必须将StaticLib链接到DLL和使用DLL的应用程序。我没有设法正确导出部分StaticLib。我在导出header中尝试过:classDLL_EXPORTOneStaticLibClass;但这不起作用......我仍然得到:undefinedreferencetoOneS

c++ - 带模板的 dllexport 函数 (C++)

我想知道是否可以定义一个模板化的dllexport函数。到目前为止,该功能还没有模板化,并且可以正常工作。代码是这样的:模块.cpp:#ifdefined(__cplusplus)#defineDLL_Exportextern"C"__declspec(dllexport)#else/*__cplusplus*/#defineDLL_Export__declspec(dllexport)#endif/*__cplusplus*/...VirtualTPM*virtual_tpm;...DLL_ExportvoidTestPointModule_Check(stringname,void

c++ - DUMPBIN 实用程序损坏的名称输出

我正在使用DUMPBIN实用程序从c++dll中获取损坏的名称以在c#应用程序中使用。我正在使用__declspec(dllexport)公开一个C++类成员函数,输出的名称结果如下所示?InitPort@CProtocolStack@@QAEEHEPAEKE@Z=?InitPort@CProtocolStack@@QAEEHEPAEKE@Z(public:unsignedchar__thiscallCProtocolStack::InitPort(int,unsignedchar,unsignedchar*,unsignedlong,unsignedchar))导入相同函数时是否需要

c++ - 如何将库构建为 .dll 而不是 .lib

我得到了这个C++物理库liquidfun它们包含一个用于构建Windows库的VisualStudio解决方案。当我构建它时,它给了我一个.lib,但我想要一个.dll,所以我可以将它与Unity3d一起使用。有没有办法在visualstudio中更改项目的build设置以获得.dll而不是.lib?编辑:在项目属性中更改它的非常简单的修复实际上对我有用!这可能是因为库本身写得很好。当我在发布这个问题之前尝试同样的事情时它没有用,但这是由我的C++代码问题引起的 最佳答案 是的,您可以生成dll而不是lib。要在VS中执行此操作,

c++ - 如何在 Visual Studio 2010 中使用 DEF 文件从现有 C++ 代码生成 DLL

我继承了一个C++项目,我需要将它转换成一个DLL,以便在其他项目中使用它。代码在VisualStudio2010解决方案中构建。我能够编译它并生成一个DLL文件,但没有关联的lib文件。我不是Windows开发者,但是好像需要导出我想要使用的函数,有两种方式:Using__declspec(dllexport)UsingaDEFfile第一个选项意味着在我要导出的每个类或函数前面手动添加__declspec(ddlexport)。由于有很多类,而且我无法控制要链接到库的所有应用程序,因此第二个选项(DEF文件)看起来更有希望。有没有办法从现有的DLL文件生成DEF文件?我尝试了不同的

c++ - 从 DLL 导出 ASM 函数 - Visual Studio C++

我已经创建了Dll项目。我创建了具有一个功能的myasm.asm文件:.486.modelflat,stdcall.codeMyProc1procx:DWORD,y:DWORDxoreax,eax//......//retMyProc1endpend这是我的头文件:#pragmaonce#include#ifdefLAB1DLL_EXPORTS#defineLAB1DLL_API__declspec(dllexport)#else#defineLAB1DLL_API__declspec(dllimport)#endifextern"C"{LAB1DLL_APIint_stdcallMy

c++ - 使用 C++ 代码从 FORTRAN DLL 调用函数

我想在C++代码中加载一个fortrandll,并在fortrandll中调用一个函数。代码如下SUBROUTINESUB1()PRINT*,'Iamafunction'END创建foo.dll[fotrandll]后,这是我在visualstudio2012中编写的用于加载fortrandll的以下C++代码。并在fortran代码中调用函数SUB1#include#include#includeusingnamespacestd;extern"C"voidSUB1();typedefvoid(WINAPI*PGNSI)(LPSYSTEM_INFO);intmain(void){Lo