Windows:如何从可能不存在的 DLL 中获取类型?

发布于 2024-09-12 18:13:02 字数 249 浏览 6 评论 0原文

我正在编写需要仅存在于 Windows 7 上的 DLL 的代码。但是,我将部署到较旧的平台,因此我想使用该 DLL(如果用户系统上存在该 DLL)。

我可以使用 LoadLibrary() 获取 HMODULE,并使用 GetProcAddress() 从该 HMODULE 获取方法。这允许我获取该方法,并且它仍然可以编译。但是,如何声明该 DLL 中定义的结构或类的类型并使其编译呢?

I'm writing code that requires a DLL that exists only on Windows 7. However, I will deploy to older platforms, so I want to use the DLL if it exists on the user's system.

I can use LoadLibrary() to get a HMODULE, and GetProcAddress() to get methods from that HMODULE. This allows me to get the method, and it will still compile. But how do I declare a type of struct or class defined in that DLL and have it compile?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万劫不复 2024-09-19 18:13:02

一般来说,您会知道您正在使用什么方法,并且有一个包含您需要定义的类型的头文件。您只需要定义 fn 指针即可将 getprocaddress 的返回值分配给该指针。如果您没有头文件或某些文档,那么您在探索领域将需要进行试验。

Generally you will know what methods you are using and either have a header file with the types that you need defined. You just need to define fn pointers that you can assign the return of getprocaddress to. If you don't have a header file or some documentation you are in discovery land will need to experiment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文