c++ - 在运行时加载 DLL

标签 c++ c windows cuda visual-studio-2012

我在项目中使用 CUDA Driver API。当我在没有 NVIDIA GPU 的 PC 上执行该项目时,它显示“找不到 nvcuda.dll”。

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

有办法吗?

最佳答案

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

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

关于c++ - 在运行时加载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13479924/

相关文章:

windows - 将 x32 lib 与 x64 进程集成的最佳方法是什么(无需将 lib 转换为 x64)?

c++ - 添加尾随空格和使用 eof 时的额外输出

c++ - Fork Direct Show 三通过滤器

c++ - 在char元素中交换半字节

c - 数组指针的初始化

php - 如何在 Windows 下的 PHP 中获取*任意*(即不是当前)用户的主目录?

c++ - 将分贝范围转换为字节范围

c++ - 复制 CCSprite

C:链表打印垃圾字符

c# - 如何创建超过 MAX_PATH 的目录