在运行时加载DLL

时间:2012-11-20 18:41:25

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

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

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

有办法吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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