在Windows中静态链接DLL
考虑这种情况:
我正在创建一个DLL(我们称之为dllA),它反过来调用其他DLL中的函数(让我们称之为dllX,dllY和dllZ).如果其他人想要使用dllA,他们也需要一份dllX,Y和Z. 有没有办法构建dllA,使dllX,Y和Z中所需的函数链接到dllA?我不知道这是否是正确的术语,但这被称为“静态链接DLL”吗? 我正在寻找一个简单的解决方案.我会对简单地连接dllX,Y和Z并将其附加到dllA的某些东西感到高兴,如果这样的事情存在的话. 我在Windows上,使用VS. 谢谢! 解决方法
您不能静态链接DLL,只能链接LIB. DLL是自包含的,具有静态成员和DllMain加载/卸载依赖项,这意味着它们不能拆分为包含函数并链接到不同的可执行文件中.
您应该根据需要创建一个部署所有相应dll的安装程序. 如果你真的认为这很重要并且你不能依赖你的app安装程序,你可以创建一个包装器,将所需的dll(A,X,Y和Z)作为资源嵌入,并在运行时提取它们并将它们写入用户配置文件中的磁盘临时文件夹,然后加载提取的dllA并将所有传入的函数调用推迟到加载的dllA.一些sysinternals工具使用类似的技术从x86映像中提取应用程序的x64图像,并重新启动为64位进程,无需运送两个独立的exes. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-phone-8 – 我可以在Windows 8.1 Universal应用程序
- windows-server-2008 – Windows Server 2008在到达登录界面
- 如何将多个.ico文件存储到.DLL文件中
- 在Windows 7上使用WebSocket
- Windows8 – 在C#中使用本地化的字符串
- windows phone 7数据库
- 在Windows下Kafka的基本配置及简单使用
- 在Windows上,控制台窗口所有权如何工作?
- 第七章——Windows内核基础-内核理论基础(内存空间布局,W
- 在Windows Server 2008R2(64位)上运行mongos作为可靠的服务
- windows – 确定哪些域计算机不尊重/应用GP
- 在Windows机器上从C#读取SMBus的简单方法?
- winapi – 如何在不获取WER对话框的情况下在Wind
- Microsoft Windows操作系统文件版本是否包含所有
- 在Windows批处理中打印段落
- Microsoft OneNote 2010 SkyDrive Web服务的API?
- windows-phone-7 – 由于命令行参数无效,连接失败
- windows-server-2012 – 通过远程桌面缓慢登录到
- dll中的c-std :: unique_ptr pimpl生成C4251与vi
- Windows – SQL Server速度慢但CPU正常