从 *.lib 加载 *.dll 并在之后使用此库生成 *exe:可能吗?
Loading a *.dll from a *.lib and using this lib in generating an *exe afterwards: Is it possible?
我想将第三方dll的功能用于我创建的库。像这样:
m_hLib = LoadLibrary(L"Bla.dll");
并将其与:
void* fnBla = ::GetProcAddress(m_hLib , "MethodFromBla");
使用相应方法中的一些东西。
现在我的问题是:我可以像这样构建库,然后从 exe 使用它的功能吗?
完全没有问题.exe静态链接到lib文件。这意味着 lib 代码成为 exe 代码的一部分。现在exe代码正在动态加载dll:)
您正在做的是动态(或运行时)链接,即您显式加载.dll并通过GetProcAddress
解析函数。如果您正在执行此操作,则不需要 .lib 文件。
仅当您希望在编译时静态链接到.dll时,才需要 .lib 文件。链接器获取 .lib 文件,并根据 .lib 中的函数信息解析程序中的引用。因此,如果您不打算在编译时链接到.dll,则不需要 .lib。您只需要确保它与您的应用程序一起发布的.dll(在您的情况下为 Bla.dll)。
相关文章:
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 解析引用 |exe/dll vs lib
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- C++ DLL 引用C++.exe中的函数和类
- 从 exe 和 dll 访问静态库中的 extern 变量
- 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变
- C++ |DLL / EXE - 如何从导出的类调用另一个类方法?
- 在 EXE/DLL 之间传递数据
- 为什么我可以在EXE上编译DLL
- .EXE是否可以使用间接导入的 DLL 中的符号?
- 是否可以在C++中基于程序集输出(.dll或.exe)定义变量
- GetModuleHandle() 无法检索由 "notepad.exe" 加载的"advapi32.dll"的句柄
- 如何将我的程序转换为.dll文件并使用rundll32.exe在cmd中运行它?
- x64 位的 C++/CLI DLL 和 Exe 的应用崩溃
- 如何在 windowsservercore Docker 映像上安装执行本机C++ DLL/EXE 所需的所有依赖二进制
- 用户DLL/EXE中的堆分配失败
- 我可以将使用v120_xp工具集构建的静态库链接到使用VS2013中的v120工具集创建的EXE/DLL中吗
- 用于检查配置类型(exe/dll)的宏
- C++ 一个解决方案两个项目(EXE & DLL)链接错误