【发布时间】:2013-03-20 01:38:21
【问题描述】:
据我了解,这些库通常通过显式运行时链接 (LoadLibrary) 链接,但仍有一些导入库包含库的一小部分的描述符。这是什么原因?
提前致谢和问候!
【问题讨论】:
-
我认为,它是用来知道那些dll中函数的地址,就像它们是函数入口点地址映射
-
但这不是显式运行时链接所必需的。
-
@Skeptiker 如果您仅使用纯显式运行时链接(LoadLibrary,然后 GetProcAddress 并通过函数指针调用每个函数调用),那么您是对的,没有理由链接到库(对于调用函数)
-
易于使用和安全。许多实用程序库(例如 D3DX 和 D3DCompiler)现在使用版本控制,这些库将自动考虑,但
LoadLibrary不会。除非您有充分的理由(例如多个渲染后端),否则您应该使用库(其中包含 COM 对象的全局接口),而不是LoadLibrary。 -
@Necrolis 这可以解释很多!好点!
标签: c++ winapi dll com directx