Windows 运行时加载动态库

下面是一个运行时加载nvcuda.dll,并检测当前驱动版本最大支持的CUDA版本的例子。

#include "cuda.h"
#include <stdio.h>
#include <Windows.h>

typedef CUresult (__cdecl *CU_DriverGetVersion)(int *);

int main()
{
    HINSTANCE nvcudalib;
    nvcudalib = LoadLibrary(TEXT("nvcuda.dll"));

    if(nvcudalib) {
        int cudaVersion = 0;
        CU_DriverGetVersion mycuDriverGetVersion
                = (CU_DriverGetVersion)GetProcAddress(nvcudalib, "cuDriverGetVersion");
        CUresult res = mycuDriverGetVersion(&cudaVersion);
        if(res == CUDA_SUCCESS) {
            int major = cudaVersion / 1000;
            int minor = (cudaVersion % 1000) / 10;
            printf("The latest CUDA version by your driver is %d.%d\n", major, minor);
        }
        else {
            printf("Unkonwn Error.");
        }
        FreeLibrary(nvcudalib);
    }
    else {
        printf("Load nvcuda.dll error.");
    }

    getchar();
    return 0;
}

posted @ 2019-08-27 17:41  霄林  阅读(1172)  评论(0编辑  收藏  举报