Tag: dll

为什么我需要将lib文件链接到我的项目?

我正在创建一个使用DLL的项目。 要构建我的项目,我需要包含一个头文件和一个lib文件。 为什么我需要包含相应的lib文件? 不应该头文件声明所有需要的信息,然后在运行时加载任何所需的库/ DLL? 谢谢

连接MinGW和MSVC之间的困境(未定义的引用)。 MinGW无法使用MSVC

我正在尝试移植最初使用MSVC完成的旧C .dll库,该库使用BEA Tuxedo库来使用MinGW。 我遇到过MSVC编译并链接一个文件但MinGW失败的情况。 实际问题在于连接阶段。 出现’未定义的引用’错误。 这是创建dll的最小示例:(tpsetunsol_test.c) #include void __stdcall msghandler(char *pszMessage, long lMessageLen, long lFlags) { } int Inittpsetunsol() { int ret = 0; tpsetunsol(msghandler); return ret; } 这编译没有错误: gcc -Wall -fexceptions -g -O2 -DWIN32 -DNDEBUG -D_WINDOWS -ID:/dev/tuxedo/include -o tpsetunsol_test.o -c tpsetunsol_test.c 出现错误: dllwrap –export-all-symbols -LD:/dev/tuxedo/lib -k –output-lib test.lib –output-def test.def –enable-stdcall-fixup –add-stdcall-alias -o […]

使用ctypes模块访问用C编写的DLL时出错

我有一个DLL,只有一个函数,它有五个双精度数和一个整数: __declspec(dllexport) struct res ITERATE(double z_r,double z_i,double c_r, double c_i, int iterations, double limit) 它返回一个自定义的struct caled res,它由一个三双数组组成: struct res { double arr[3]; }; 要返回值,我这样做: struct res result; /*earlier in the code */ result.arr[0] = z_real; /*Just three random doubles*/ result.arr[1] = z_imag; result.arr[2] = value; return result; 我用MinGW编译它,我试图在python中使用它来做这样的事情: form ctypes import * z = [0.0,0.0] […]

从内存中的位置加载DLL

正如问题所说,我想从内存中的位置而不是文件加载DLL,类似于LoadLibrary(Ex)。 我不是WinAPI的专家,所以谷歌搜索了一下,发现这篇文章与MemoryModule库一起完全满足我的需求。 另一方面,信息很旧,图书馆也没有更新一段时间。 所以我想知道是否有不同的,更新的和更好的方法来做到这一点。 此外,如果有人使用了文章中提到的库,他们是否可以提供有关使用它时可能遇到的问题的见解? 对于好奇的,我正在探索加密应用程序的一些插件的概念,而不将解密的版本存储在磁盘上。

将C / C ++ DLL头转换为Delphi的最佳资源?

一个相当全面的网站解释了使用用c / c ++编写的dll以及将.h头文件转换为delphi / pascal所涉及的困难和解决方案被发布到我最近的邮件列表中,所以我想我会分享它,并邀请其他人发布其他有用的资源,无论是链接,转换工具还是书籍/纸质标题。 每个答案都有一个资源,所以我们最终将最热门/最好的资源冒充到顶部。

如何在C中编写DLL文件?

如何在C中编写DLL文件 ? 我在网上看,但我总是得到C ++的教程,而不是C.我想用C编写我的第一个DLL文件。我怎么能这样做? 一个简短的例子是什么?

在GCC或Cygwin中创建DLL?

我需要帮助将脚本(“iterator.c”)编译成DLL。 我不能使用VS2010,因为它不支持在C99标准中添加到C的function(我使用“complex.h”但VB不支持它)。 我一直在寻找替代品,但我发现的只是GCC,我不知道如何安装/使用(真的,我花了半个小时阅读文档,我甚至不懂我应该安装它,和Cygwin,我已经安装但我不知道如何使用它们。 另外,我已经安装了MinGW,但我认为它与Cygwin或多或少相同,我仍然不知道如何制作DLL。 这并不像我一直都懒惰甚至没有尝试过,只是因为这些编译器并不像我以前用过的任何东西(主要是Python IDLE和Visual Studio,它们让你很容易)。 我有点迷茫。 有人可以给我一些关于如何使用这个工具来制作我可以从另一个脚本访问的DLL的建议吗? 这非常重要。 先感谢您。

在一个进程中混合和匹配Visual C ++运行时DLL文件有多糟糕?

我有一个使用Visual Studio 2012构建的应用程序,因此它依赖于MSVCP110.DLL和MSVCR110.DLL 。 我正在使用另一个DLL文件,它似乎是使用Visual Studio 2010构建的,并且依赖于MSVCP100.DLL和MSVCR100.DLL 。 我有另一个DLL是用Visual Studio 2008构建的,依赖于MSVCR90.DLL 。 这是坏事吗? 真的很糟糕吗? 我应该担心吗? 我问的原因是运行时堆分配器抱怨堆损坏。 这可能与混合运行时版本有关吗?

我可以将std :: string传递给DLL吗?

我将代码片段分离为DLL因为它会经常更新,因此它应该更容易部署。 但我对我可以做什么以及我不能用DLL做什么有疑问。 我可以将std:string或CString传递给DLL吗? 我可以将指针传递给带有std::string members的struct并将其填入DLL吗? DLL返回指向那里分配的结构的指针吗? 它会有效吗? 我可以删除吗? 什么应该更好地传递, std::String或Cstring ? 谢谢 !

.def文件C / C ++ DLL

我不明白使用DLL的.def文件的意义。 它似乎取代了在您的DLL代码中使用显式导出的需要(即显式__declspec(dllexport))但是我不能在不使用这些时生成lib文件,然后在使用DLL时会创建链接器问题。 那么在与客户端应用程序链接时如何使用.def,它们是否取代了使用头文件或.lib文件的需要?