[英]Why does nvmlDeviceGetTemperature only work in debug mode?
使用 VS2022,以下代码片段在调试模式下有效,但在发布模式下无效:
nvmlInit();
nvmlDevice_t devH;
auto ret = nvmlDeviceGetHandleByIndex_v2(0, &devH);
if (ret != NVML_SUCCESS) DPrint("ERROR!");
u32 tt{};
ret = nvmlDeviceGetTemperature(devH, NVML_TEMPERATURE_GPU, &tt);
if (ret != NVML_SUCCESS) DPrint("%s\n\n", nvmlErrorString(ret));
DPrint("TEMP: %u\n", tt);
Sleep(10000);
在发布模式下,我得到NOT SUPPORTED
,但在调试模式下它工作正常,打印温度。 我已经检查了所有属性,尤其是 linker 属性,但我找不到任何可以解释它的显着差异。 DPrint
是一个简单的实用程序,用于打印到 output window。
结果是发布版本加载了不同版本的 nvml.dll。 修复它,现在它可以工作了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.