c++ - 我的代码如何知道它寻址的是哪个 .dll?

标签 c++ dll header

我有一个 sample.dll 文件和一个相应的 sample.h 头文件。我将两者都添加到引用中,并将 header 包含在我的 C++ 代码中。该程序如何知道头文件对应于特定的 .dll?

最佳答案

How this program knows that header file corresponds that particular .dll?

没有!

基本上,当您编译程序时,编译器会看到 sample.h 中的声明,并为链接器做一个注释,以便稍后在需要时找到相应的定义。

当需要链接您的程序时,链接器将查看您正在链接的所有 DLL、库和其他目标文件,并尝试找到与编译器在文件中找到的所有声明相对应的定义 sample.h,在您的情况下,它将在 sample.dll 中找到它们,因为它们是在此处编译的。

如果链接器没有找到匹配的定义,或者找到了多个,那么这是一个错误,链接将失败。 这就是为什么您的程序不需要知道什么 header 对应于什么特定的 .dll,因为 there is only have definition allowed对于这些声明中的每一个,它可以到处寻找直到找到它。

关于c++ - 我的代码如何知道它寻址的是哪个 .dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887301/

相关文章:

c++ - 如何使用 get line() 从文件中读取间隔字符串?

python - 如何以编程方式在 C++ 或 Python 中列出 DLL 的依赖项?

android - 删除 ListView 标题和第一项之间的分隔符

c++ - 具有 "Common" header 的实践

http - HTTP header 设置问题

c++ - 错误 : no match for operator= in map c++

c++ - C语言写cgi代码

c++ - 在 Visual Studio C++ 中从一个项目访问变量到另一个项目

C# 将双数组传递给 C++ dll

c++ - 在 C++ dll 中查找外部调用