2014-02-17 60 views
-2

我已返回的時間的計時器經過:VB.NET烏龍溢出

Public Function TimeElapsed() As ULong 

    Dim ul As ULong 
    ul = m_lEnd - m_lStart 

    Dim ul2 As ULong 
    ul2 = ul - m_lOverhead 

    Dim ul3 As ULong 
    ul3 = (ul2/m_lFreq) * 1000 

    Return ul3 

End Function 

現在,我經歷了以下幾個變量:

m_lEnd = 935083366402 
m_lStart = 935007142800 
ul2 = 76223588 
m_lOverhead = 14 

這使我在該行的溢出

ul3 = (ul2/m_lFreq) * 1000 

我看不出爲什麼以及如何改善我的錯誤。

非常感謝您的幫助!

+2

你沒有提到'm_lFreq'是 – ps2goat

+0

是的,'m_lFreq'中有什麼? – Neolisk

回答

0

您需要明確地告訴編譯器您正在ULong上執行操作...這是因爲數字文本默認爲Integers,因此您嘗試使用整數文字,這會導致像您的問題一樣溢出。您可以使用正確的後綴將值強制爲不同類型。沒有類型後綴的文字值可能只有長度範圍內的值。這種情況是ULong所以後綴是:UL。

順便說一句,這是一個轉換錯誤,打開選項嚴格上......在結束

EX: Dim m_lEnd As ULong = 935083366402UL 

注意到這一點,這是需要採取什麼措施。

+0

如果這有助於不忘記upvote,謝謝! – Codexer