1

我在项目中使用 CUDA 驱动程序 API。当我在没有 NVIDIA GPU 的 PC 上执行该项目时,它会给出“未找到 nvcuda.dll”。

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

有没有办法做到这一点?

4

2 回答 2

1

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

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

于 2012-11-20T19:02:43.887 回答
0

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

于 2012-11-20T21:10:27.103 回答