→ shadow0326:貼一下你建立object和呼叫它的method的程式碼 01/07 11:41
建立
MotorPlant Cam1;
呼叫
Cam1.SetPWM(nV,nH,&hComm);
※ 編輯: deo2000 來自: 140.122.165.222 (01/07 11:42)
→ shadow0326:那可能有其它部分有問題,用debugger一步步跑看看吧 01/07 11:44
有阿,就是用debugger一步步跑,才發現private變數無法被改變
※ 編輯: deo2000 來自: 140.122.165.222 (01/07 11:46)
→ loveme00835:錯誤訊息呢... 01/07 11:52
→ loveme00835:阿沒看到能跑@@ 01/07 11:53
推 flydragon198:我寫了一個小程式測試,是可以丟的~~~ 01/07 11:56
→ flydragon198:如果要我猜的話,我會猜是Handle這裡~~ 01/07 12:01
debug:
一切如預期
release:
MotorPlant();未能正常將private變數初始化
private變數也都是一些不正常的數字,無法被改變
不過很奇怪的是,系統都能正常動作,
為了監控,我又設定private變數m_strControlHV,將它cout來監看
發現都是正確的數值
真的很奇怪,過程都是錯的,結果卻是對的
※ 編輯: deo2000 來自: 140.122.165.222 (01/07 12:53)
推 simonly0001:this->m_nPWM_V = p_nPWM_V; 01/07 12:59
→ simonly0001:改成 const int p_nPWM_V 就知道錯在哪了 01/07 13:02
→ devilphoenix:private無法被改變是編譯期約束。如果調試中沒變,則 01/07 13:20
→ devilphoenix:你可能調試的是release版本,缺少debug信息 01/07 13:21
→ devilphoenix:話說這裡應該是“調試資訊”嘛?233 01/07 13:22
→ linotwo:如果要得知 release 版的變數的值,建議你用印出來的方式 01/07 16:21
→ linotwo:用 watch 的可能會因為最佳化而得到沒意義的值。 01/07 16:22
→ linotwo:也有可能同一個專案的 release 版在開發前期可以用 watch 01/07 16:23
→ linotwo:後期卻不能。 01/07 16:23