在运行时加载 DLL

Load DLL at runtime

本文关键字:DLL 加载 运行时      更新时间:2023-10-16

我正在一个项目中使用 CUDA 驱动程序 API。当我在没有 NVIDIA GPU 的 PC 上执行项目时,它会给出"nvcuda.dll找不到"。

问题是:此 DLL 仅与 GPU 驱动程序一起分发,不像在运行时 API 中那样,您可以将所需的 DLL 与可执行文件一起放置。我需要在运行时加载这个 DLL,如果它不存在,我会知道 CUDA 不可用。我正在使用Visual Studio 2012 Professional。

有没有办法做到这一点?

Windows提供了一个API函数(LoadLibrary)在运行时将DLL加载到内存中。提供一个LPCTSTR(指向常量TCHAR的 null 终止指针),其中包含要加载的 DLL 的名称/路径。如果提供相对路径,Windows 将扫描PATH和可执行文件的当前目录以查找该文件。如果您提供绝对路径,Windows 将使用该路径。

如果LoadLibrary返回NULL,Windows 找不到该文件。

创建一个小型的"启动器"应用程序,该应用程序将检查系统是否满足您的要求,并根据检查结果启动主应用程序或显示错误。若要检查 DLL 是否可用,可以按照前面的建议使用LoadLibrary()