4

我是 c++/cli 的新手,想为 nvapi 编写一个小的托管包装器。
现在,当尝试访问某些函数(例如 NvAPI_Initialize)时
,Visual Studio 告诉我这个函数没有定义:

#include "nvapi.h";    

NvAPIStatus Nv_GPU_ThermalAPI::M_NvAPI_GPU_GetThermalSettings(System::UIntPtr gpuHandle,
                                                              Nv_Thermal_Target sensorIndex,
                                                              [Out] array<Nv_GPU_Thermal_Settings^>^% settings)
{
    NvAPI_Status res = NvAPI_Status::NVAPI_OK;             // OK
    NvPhysicalGpuHandle handle;                            // OK
    NV_GPU_THERMAL_SETTINGS *settings;                     // OK

    res = NvAPI_Initialize();                              // Error
    res = NvAPI_GPU_GetThermalStatus(handle, 0, settings); // same here
}

我已经包含了这里描述的 nvapi.lib 。

附加的 VS 告诉我,例如

NVAPI_INTERFACE NvAPI_Initialize();

NVAPI_INTERFACE 缺少显式类型,并且会假定为“int”。
试图构建我的代码这条消息变成 C2059: syntax error 'return' 并且 VS 在 100 个错误后取消构建。我正在使用 VS 2013 Pro。

编辑: NVAPI_INTERFACE 定义如下:
'#define NVAPI_INTERFACE extern __success(return == NVAPI_OK) NvAPI_Status __cdecl'

4

1 回答 1

5

自己找到了答案。好像还得加

#include <Windows.h>

到 nvapi.h。

于 2015-05-04T18:33:50.693 回答