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
}

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 に答える