草庐IT

c# - 从 C# 调用包含函数指针的 DLL 函数

我有一个用C++编写的DLL,其中包含导出的函数,该函数具有用作回调函数的函数指针。//C++DllExportunsignedintDllFunctionPointer(unsignedinti,unsignedint(*TimesThree)(unsignedintnumber)){returnTimesThree(i);}我有一个CSharp应用程序,我想用它来调用DLL函数。//C#publicunsafedelegateSystem.UInt32CallBack(System.UInt32number);classProgram{[DllImport("SimpleDLL.d

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++ - 如何将库构建为 .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

c# - 如何从 C# 使用 C++ dll

我正在尝试在我的C#项目中包含C++库(DLL),但每次我这样做时,我都会在VS2012中收到以下错误消息Areferenceto'C:\Users\HiepDang\Desktop\mydll.dll'couldnotbeadded.Pleasemakesurethatthefileisaccessible,andthatitisavalidassemblyorCOMcomponent.当我尝试添加Com+组件时,我在窗口中收到以下错误消息Oneormorefilesdonotcontaincomponentsortypelibraries.Thesefilescannotbeins