草庐IT

AppInit_DLL

全部标签

java - 是否可以在 Java 中加载同一个 DLL 的不同版本?

我有一个与一组第三方库交互的JNI库,系统上可能有多个版本的第三方库。对于第三方库的每个版本,出于可比性原因,我必须重新编译JNI代码。现在我通过加载一个具有特定名称的DLL来处理这个问题,如果版本发生变化,我会更改JNI接口(interface)DLL的名称,以便版本的正确名称可以加载。不过,我希望能够根据用户想要使用的版本动态加载dll。如果我对名称不同但方法签名相同的DLL调用System.loadLibrary两次,会发生什么情况?System.loadLibrary("JNIv1");//Samecodecompiledagainstadifferentthirdpartyv

Java - 将 jar 中的 dll 文件写入硬盘?

我有一个已签名的小程序,我想写出包含在我启动小程序的jar中的dll文件。我这样做是因为我想在dll上执行System.load,显然您不能从applet的jar中加载DLL。第二个问题是您是否可以在小程序中添加环境变量-例如我想将我的DLL提取到硬盘驱动器的某个位置并添加环境变量以便System.load可以找到它。 最佳答案 您应该能够通过以下方式完成此操作:从小程序jar中提取.dll到系统临时目录。使用AccessController在提取的文件上调用System.load(..)。这种方法将避免设置环境变量的需要。下面是一

c++ - 创建DLL时无法解析的外部符号

我的一个friend在创建DLL时遇到一堆错误。VisualStudio提示未解析的外部符号。我主要是Unix用户,所以在那里我可能会误会。在Unix上,当您创建静态库(存档)时,它所做的只是将不同的目标文件连接到存档文件中而已。我希望动态对象以相同的方式创建,但是显然,会发生一个额外的链接阶段。第一个问题:为什么dll有链接阶段?在这种情况下,DLL确实包含undefinedsymbol,因为我们希望DLL在EXE文件中找到那些符号。这与典型的DLL行为相反,在DLL行为中,EXE使用DLL中定义的符号。为了清楚起见,我希望在将DLL加载到内存中后立即找到这些符号。第二个问题:如何使

c++ - 创建一个可以运行的DLL

Windows有一个名为rundll32.exe的实用程序,可以将native动态链接库作为应用程序执行。假设我有一段代码打印“HelloWorld!”到控制台。是否可以用C++(最好是VisualC++)编写一个可以使用rundll32.exe执行并运行此代码的库?如果是,怎么办? 最佳答案 谷歌搜索“rundll32”,第三次点击是指向文档的链接,http://support.microsoft.com/kb/164787根据该文档,rundll32调用一个用户指定的函数,其签名类似于wWinMain(除了这里的第一个参数是窗口

c++ - 在 Qt Creator 中使用外部库/DLL?

在经历了一上午的头痛之后,我决定在我的第一个Qt项目中使用QtCreator可能比MSVC更好(编译问题太多)。我想知道如何通过QtCreator添加外部工具所需的.dll和.lib。我找到这篇文章AddingexternallibraryintoQtCreatorproject这是有道理的。我需要更多信息,例如...我是先链接dll还是libs,将dll添加到qmake中的构建步骤的语法是什么(我假设它接近win32:LIBS+=path/to/Psapi.lib)谢谢! 最佳答案 使用QtCreator/gcc编译外部库如果您拥

c++ - 如何从 C++ 中的 DLL 导出纯虚函数?

我遇到一个奇怪的问题,即没有从DLL导出纯虚函数。DLL编译并输出为.dll文件到目录中。但它不会生成.lib文件。如果我给出定义并且它不再是纯虚拟的,那么它会愉快地创建.lib文件。我需要实现工厂模式,为此我需要分离接口(interface)和实现。我的工厂实现和其他使用想要的.dll(未生成.lib文件)的接口(interface)需要使用该导出函数,当我使用这些函数时,它们会产生链接错误...如“errorLNK2011:unresolvedexternalsymbol"public:......"知道如何导出纯虚函数以便可以为其他exe和dll实现它们问候乌斯曼

c++ - 分析 DLL/LIB 膨胀

我在VS2005中继承了一个相当大的C++项目,它编译成一个大约5MB的DLL。我想缩减库的大小,以便从慢速网络共享中使用它的客户端可以更快地通过网络加载它。我知道如何通过分析代码、包含和项目设置来做到这一点,但我想知道是否有可用的工具可以更轻松地查明代码的哪些部分占用的空间最多。有没有办法生成DLL布局的“配置文件”?关于库图像中什么正在消耗空间以及占用多少空间的报告? 最佳答案 构建DLL时,可以传递/MAP给链接器让它生成一个映射文件,其中包含结果图像中所有符号的地址。您可能需要编写一些脚本来计算每个符号的大小。使用"stri

c# - tfs 构建错误无法注册程序集 "MyAssembly.dll"- 访问被拒绝

我有一个C#网络服务项目。我创建了一个客户端来创建和管理与服务的连接。我们有一个用C++编写的旧PC产品,它们需要有一个接口(interface)来调用该服务。我在客户端为它们创建了一些调用,并使COM可见的新对象能够传递数据。然后我选中项目设置中的框,上面写着“RegisterforCOMinterop”。这一切似乎都在本地构建和工作(我以管理员身份运行visualstudio)。但是当我在我的TFS服务器上checkin时,构建失败并指出:无法注册程序集“MyClient.dll”-访问被拒绝。请确保您以管理员身份运行该应用程序。拒绝访问注册表项“HKEY_CLASSES_ROOT

c++ - 从 DLL 中获取 HModule

我需要从我的DLL加载一些资源(我需要从DLL代码加载它们),为此我正在使用FindResource。为此,我需要DLL的HModule。怎么找到那个?(不知道DLL的名称(文件名)(用户可以更改)) 最佳答案 您可以从DllMain()入口点的第一个参数中获取它。写一个,存入全局变量:HMODULEDllHandle;BOOLAPIENTRYDllMain(HMODULEhModule,DWORDdwReason,LPVOIDlpReserved){if(dwReason==DLL_PROCESS_ATTACH)DllHandle

c++ - 如何为 Pantheios 记录器创建固定的后端 DLL

我有一个VS2005解决方案,它有许多项目(大多数是DLL,1个EXE是一个CppUnit项目),我正在尝试为Pantheios记录器添加一个固定的后端DLL,以便我可以使用单个记录器整个解决方案中的实例。按照以下URL中的说明进行操作:UsePantheiosloggingframeworkfromadllhttps://sourceforge.net/projects/pantheios/forums/forum/647484/topic/1639420/index/page/1我似乎有一个固定的后端DLL,它支持基本的Pantheios日志记录语句,例如log_DEBUG、log