gpt4 book ai didi

c++ - __declspec(dllimport) 如何加载库

转载 作者:IT老高 更新时间:2023-10-28 23:15:10 25 4
gpt4 key购买 nike

http://msdn.microsoft.com/en-us/library/9h658af8.aspx

MSDN 说我可以使用 __declspec(dllexport) 从库中导出函数,但是如何将这个库加载到我的可执行文件中?

我在 DLL 中有一个导出函数:

 __declspec(dllexport) void myfunc(){}

现在我想在我的可执行文件中使用它:

 __declspec(dllimport) void myfunc(void);

但是我的程序如何知道在哪里可以找到这个函数呢?

最佳答案

这是编译器/链接器的工作,只要你自动完成

  1. 在链接器选项中包含 .lib
  2. 在运行时提供 DLL,以便 exe 找到它

.lib 文件是在您编译 DLL 时生成的,如果不是您的代码,它会随它一起提供。在这种情况下,代码使用 __declspec(dllexport) 编译。

在编译你的 exe 时,编译器会看到包含的函数在 DLL 中。在这种情况下,代码使用 __declspec(dllimport) 编译。

链接器随 .lib 文件一起提供,并在 exe 中生成适当的指令。

这些指令将使 Exe 找到 DLL 并在运行时加载导出的函数。 DLL 必须位于 Exe 旁边(不过,还有其他可能的位置)。

__declspec(dllimport)__declspec(dllexport) 之间的切换由宏 provided by Visual C++ when creating a DLL project 完成。 .

关于c++ - __declspec(dllimport) 如何加载库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17935113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com