我想动态链接用户PC上的OpenCL.dll。 当我分析我自己的电脑,我能找到很多OpenCL.dll动态加载OpenCL.dll的路径?
的C:/Windows/SysWOW64
C:/Windows/System32/DriverStore/...
C:/Windows/System32
C:/Program Files(x86)/AMD APP SDK /...
所以我想知道这是加载这个DLL在运行时的正确路径? 另外什么是其他平台的路径?
我想动态链接用户PC上的OpenCL.dll。 当我分析我自己的电脑,我能找到很多OpenCL.dll动态加载OpenCL.dll的路径?
的C:/Windows/SysWOW64
C:/Windows/System32/DriverStore/...
C:/Windows/System32
C:/Program Files(x86)/AMD APP SDK /...
所以我想知道这是加载这个DLL在运行时的正确路径? 另外什么是其他平台的路径?
如果您在64位计算机上运行32位可执行文件,则需要C:\ Windows \ SysWOW64版本。如果您在64位计算机上运行64位可执行文件或在32位计算机上运行32位可执行文件,则需要C:\ Windows \ System版本。但是我会说Windows LoadLibrary调用会为你找出那些东西。你应该只能调用LoadLibrary(L“OpenCL.dll”)。它会为你挑选合适的。
其他位置是驱动程序或SDK安装的一部分,可能不会在其他具有OpenCL的系统上部署。
同意。你不应该指定路径,只需加载DLL,操作系统会在正确的位置找到它。 – Dithermaster
@ boiler96感谢您的答复和Dithermaster的一致性。 –
不确定你所指的是:如果用户安装了OpenCL,那么他有一个“可安装的客户端驱动程序”,并且应该将其安装到通过PATH环境变量可见的路径中。所以如果DLL可用,那么它应该是自动可见的(除非安装出现问题) – Marco13