草庐IT

AppInit_DLL

全部标签

c++ - 在运行时获取 DLL 路径

我想从其代码中获取dll的目录(或文件)路径。(不是程序的.exe文件路径)我尝试了一些我发现的方法:GetCurrentDir-获取当前目录路径。GetModuleFileName-获取可执行文件的路径。那么我怎样才能找出代码在哪个dll中呢?我正在寻找类似于C#的Assembly.GetExecutingAssembly的东西 最佳答案 您可以使用GetModuleHandleEx函数获取DLL中静态函数的句柄。你会发现更多信息here.之后,您可以使用GetModuleFileName从刚刚获得的句柄中获取路径。有关该电话的更

c++ - 用 C/C++ 编译一个 DLL,然后从另一个程序调用它

我想制作一个简单、简单的DLL,它导出一个或两个函数,然后尝试从另一个程序中调用它......到目前为止,我所看到的所有地方都是针对复杂的事情,将事物链接在一起的不同方式,我什至还没有开始意识到存在的奇怪问题......我只是想开始,通过这样做:制作一个导出一些函数的DLL,例如,intadd2(intnum){returnnum+2;}intmult(intnum1,intnum2){intproduct;product=num1*num2;returnproduct;}我正在使用MinGW进行编译,我想在C中执行此操作,但如果在C++中执行此操作有任何真正的差异,我也想知道这些。我

c++ - 从 DLL 导出包含 `std::` 对象( vector 、 map 等)的类

我正在尝试从包含std::vectors和std::strings等对象的DLL导出类-整个类被声明为DLL导出通过:classDLL_EXPORTFontManager{问题在于,对于复杂类型的成员,我会收到以下警告:warningC4251:'FontManager::m__fonts':class'std::map'needstohavedll-interfacetobeusedbyclientsofclass'FontManager'with[_Kty=std::string,_Ty=tFontInfoRef]即使我没有更改成员变量本身的类型,我也可以通过在它们之前放置以下前向

c++ - 有没有办法找到一个dll暴露的所有功能

我一直在寻找一种方法来获取映射到dll中函数名称的所有字符串。我的意思是所有可以调用GetProcAddress的字符串。如果您对dll进行十六进制转储,则符号(字符串)就在那里,但我认为必须有一个系统调用来获取这些名称。 最佳答案 如果你有MSVisualStudio,有一个名为DUMPBIN的命令行工具。dumpbin/exports 关于c++-有没有办法找到一个dll暴露的所有功能,我们在StackOverflow上找到一个类似的问题: https:/

c++ - MSVCP140.dll 丢失

我刚刚用C++开发了我的第一个程序,我想与我的一个friend分享它。但是,当他尝试打开exe时,会出现“MSVCP140.dll丢失”的错误消息。为什么会出现这个问题,我们该如何解决? 最佳答案 要么让你的friend下载运行时DLL(@Kay的回答),要么使用静态链接编译应用程序。在VisualStudio中,转到Projecttab->properties->configurationproperties->C/C++->CodeGenerationonruntimelibrary选择/MTd为Debug模式和/MT为Rele

c++ - 创建 DLL 时导出所有符号

使用VS2005,我想创建一个DLL并自动导出所有符号,而无需在任何地方添加__declspec(dllexport)并且无需手动创建.def文件。有没有办法做到这一点? 最佳答案 可以办到...我们在这里的做法是使用链接器的/DEF选项来传递"moduledefinitionfile"包含我们的导出list。我从您的问题中了解到您了解这些文件。但是,我们不是手工完成的。导出列表本身是由dumpbin创建的/LINKERMEMBER命令,并通过简单的脚本将输出处理为模块定义文件的格式。设置工作量很大,但它允许我们编译在Windows

c# - 在 c# 代码中使用在 c++ dll 中定义的类

我有一个用c++编写的dll,我需要在我的c#代码中使用这个dll。经过搜索,我发现使用P/Invoke可以让我访问我需要的函数,但是这些函数是在一个类中定义的,并且使用非静态私有(private)成员变量。所以我需要能够创建这个类的一个实例来正确使用这些函数。如何获得对此类的访问权限以便创建实例?我一直无法找到一种方法来做到这一点。我想我应该注意c++dll不是我的代码。 最佳答案 无法在C#代码中直接使用C++类。您可以间接使用PInvoke来访问您的类型。基本模式是为类Foo中的每个成员函数创建一个关联的非成员函数,该函数调用

windows - 使用 Go 1.7 构建 dll

有没有办法在Windows下针对Gov1.7构建一个dll?我尝试了经典gobuild-buildmode=sharedmain.go但是得到-buildmode=sharednotsupportedonwindows/amd64更新好的,我有我的答案。对于那些有兴趣的人:https://groups.google.com/forum/#!topic/golang-dev/ckFZAZbnjzU 最佳答案 从Go1.10开始,-buildmode=c-shared现在在Windows上受支持。发行说明:https://golang.

gcc - 通过 Windows cgo->gcc->ld 进行 DLL 链接会出现 "undefined-reference-to-(function)"错误

这个问题不太可能对任何future的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visitthehelpcenter.8年前关闭。(非常详细的问题报告——tl;dr在底部!)与Glut相比,我真的更喜欢GLFW并希望获得它的Golangbinding在Windows64位和Go1.0.164位下工作。在Linux下,它的绑定(bind)工作完美无缺。这在Windows下原则上是可行的--GitHub用户chschasmanaged至doso,但他使用的是Win32并且他的提示还没有解决我的问题

java.lang.UnsatisfiedLinkError no *****.dll in java.library.path

如何在我的Web应用程序中加载自定义dll文件?我尝试了以下方法:复制system32文件夹中所有需要的dll并尝试在Servlet构造函数System.loadLibrary中加载其中一个将所需的dll复制到tomcat_home/shared/lib和tomcat_home/common/lib所有这些dll都在web-application的WEB-INF/lib中 最佳答案 为了使System.loadLibrary()工作,库(在Windows上为DLL)必须位于PATH上的某个目录中或在java.library.path