"Windows doesn't support proper dynamic linking?"是什么意思
What is meant by "Windows doesn't support proper dynamic linking?"
我已经阅读了Linux调用的文档,分别打开动态库并在库中加载符号dlopen()
和dlsym()
。
这些调用似乎等同于Windows的LoadLibrary()
和GetProcAddress()
。
我在这篇文章中阅读了"Windows 不支持正确的动态链接":在 Windows 10 上运行 LLVM 通行证在终端中没有输出?。
Linux 和 Windows 动态库调用不同的原因是什么?
Linux 上的动态库可以在可执行文件中加载符号的唯一区别是什么?但这意味着可执行文件也是 Linux 上的库,因为dlopen()
在动态库上运行。
Windows确实支持正确的动态链接。不同之处在于Windows不支持不正确的动态链接,您将可执行文件链接到库(即错误的方式)。这个错误在Windows上是不可能的,因为它的可执行文件没有导出表。
也就是说,你的逻辑有点缺陷。可执行文件和动态库没有太大区别,即使在 Windows 上也是如此。 LoadLibrary
实际上会加载可执行文件;失败的是GetProcAdddress
。
至于插件逻辑,使用抽象(纯虚拟)类作为接口C++很容易安排。
相关文章:
- 在成员dynamic_bitset上使用 boost::from_block_range 时出错,但在本地dynamic
- Linking library C++
- Linking DirectX
- Linking SDL2 - CLion - Ubuntu 16.04 - G++
- C++类中的二维"dynamic"数组?
- protobuf in C++ with dynamic binding for google::protobuf::M
- VS 2015 linking fltlib.lib
- Visual Studio Static Linking for Standalone Exe
- 警告的原因是什么:"when type is in parentheses, array cannot have dynamic size"?
- CMake linking Windows SDK
- Xcode/IOS: linking a CMake library
- CUDA 错误:"dynamic initialization is not supported for __device__, __constant__ and __shared__ variabl
- 如何修复'The procedure entry point SDL_RWclose could not be located in the dynamic link library'
- Linking ssl library
- "The ordinal 344 could not be located in the dynamic link library"
- 'Linking CXX executable worldserver'失败
- "Windows doesn't support proper dynamic linking?"是什么意思
- Linking libraries CMake
- VS2015 Linking .dll/.so in C++
- CMake linking Boost: cannot find -lboost_program_options