我在项目中使用CUDA Driver API。当我在没有NVIDIA GPU的PC上执行项目时,它会“找不到nvcuda.dll”。
问题是:此DLL仅与GPU驱动程序一起分发,而不像运行时API中那样可以放置可执行文件所需的DLL。我需要在运行时加载这个DLL,如果它不存在,我会知道CUDA不可用。我正在使用Visual Studio 2012 Professional。
有办法吗?
答案 0 :(得分:1)
Windows提供an API function(LoadLibrary
)以在运行时将DLL加载到内存中。您提供了一个LPCTSTR
(空终止指向const TCHAR
的指针),其中包含要加载的DLL的名称/路径。如果提供相对路径,Windows将扫描PATH
和文件的可执行文件的当前目录。如果您提供绝对路径,Windows将使用该路径。
如果LoadLibrary
返回NULL
,则Windows无法找到该文件。
答案 1 :(得分:0)
创建一个小型“启动器”应用程序,该应用程序将检查系统是否符合您的要求,并将启动主应用程序或根据检查结果显示错误。
要检查DLL是否可用,您可以使用之前建议的LoadLibrary()
。