[問題] 環境問題 但邏輯上好像怪怪的

作者: checkIO (chec)   2016-10-14 16:38:39
開發平台(Platform): (Ex: Win10, Linux, ...)
win7 vs2015c++
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
qt5.7
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
HWiNFO32
目前想用HWiNFO32去抓gpu風扇資訊
但遇到一個奇怪的問題
電腦A:作者的CODE可以抓到電腦A的GPU風扇資訊
我的CODE是抄自作者的CODE,但在電腦A上抓不到風扇資訊
電腦B:但我的CODE卻可以在電腦B上抓到電腦B的風扇資訊
這樣跟環境也有關係嗎? 但在我認知裡面 電腦A應該可以算是同一個環境?
然後唯一的共通點在於,要是我的code在抓風扇資訊的那行設中斷點
不管是電腦A或者電腦B 都不會跑到那行。
但作者的code設定中斷點 卻會跑進那行
==============我的================
https://gist.github.com/Aix-Shiao/54f9158b567fc91c3b6a59b3
41d576c5#file-hwinfo32_my-cpp
=============作者的================
https://gist.github.com/Aix-Shiao/411f57d7cfd602390e3e9dc9
616a16f7#file-hwinfo_author-cpp
補充一下
n = ::HWi32_GetNumberOfDetectedSensors();
這行在電腦A跑的時候 作者的N是14
我的N是10 然後我想過把
for (i=0; i<n ; i++) ->更換成 for(i=0; i<14 ; i++)
但一點用都沒有
把中斷點設在
f = ::HWi32_GetFan( i, j, reading_desc_buf, sizeof(reading_desc_buf) );
if( f && f != INVALID_READING_VALUE )
{
str.Format( "%s = %.0f RPM\n", reading_desc_buf, f );
m_ctrlList.AddString( str ); <-中斷點
}
這時i = 11, j = 0
但我兩個都手動設過 沒用...
作者: wtchen (沒有存在感的人)   2016-10-14 16:53:00
....你不附code怎麼幫你?我水晶球等級真的太差....
作者: stupid0319 (徵女友)   2016-10-14 18:59:00
作者的CODE有付費,你的沒付費嗎
作者: CoNsTaR ((const *))   2016-10-14 19:56:00
可以 compiler 的檔案
作者: Schottky (順風相送)   2016-10-14 20:03:00
你的顯示卡是哪一牌的? Nvidia 還是 AMD ?
作者: checkIO (chec)   2016-10-14 20:08:00
N牌 但作者的demo可以確切的抓到完整的資訊但我照抄作者的CODE 不應該有這種問題....
作者: Schottky (順風相送)   2016-10-14 20:10:00
我說... N 牌要不要直接用官網的 NVAPI 去取較省事
作者: checkIO (chec)   2016-10-14 20:36:00
只是想說都有DEMO CODE可以用 而且同事用這段在他電腦上可以取出正確的值 就覺得這個問題很詭異寫C++經常會有類似的事情發生嗎?
作者: Schottky (順風相送)   2016-10-14 21:11:00
牽涉到硬體、驅動程式的話常常有靈異現象發生C++ 語言本身的話,遵守置底十三誡就不太會有騷靈現象要使用第三方程式庫不是不行,但要判斷一下你拿來蓋房子的磚頭到底是耐高壓水泥磚,還是保麗龍空心磚啊...
作者: checkIO (chec)   2016-10-14 21:58:00
...這樣我想問 靈異現象通常大家怎樣解決的...
作者: EdisonX (卡卡獸)   2016-10-16 00:08:00
複製別人的環境 @@
作者: Schottky (順風相送)   2016-10-16 03:05:00
靈異現象嗎,你問了一個很難回答的問題 XD沒有一定的解法,靠戰鬥經驗吧你以為寫驅動程式、主機板 BIOS 的薪水為什麼那麼高

Links booklink

Contact Us: admin [ a t ] ucptt.com