❶ VB編譯時提示內存溢出~~~
可能是你機子有問題。我這邊正常通過的。
也許是病毒,或是你機子超了頻造成不穩定。
我之前也試過,超了頻,運行 Super pi 800 萬位都正常通過,但一運行要訪問 MDB 資料庫的軟體就提示溢出,然後軟體被強行結束。
❷ VB 運行時內存溢出如何解決
定義合適的類型來存儲數值 就不會溢出了 數值類型都有范圍 不能超過
❸ VB 查詢報錯 內存溢出
32*1024=Overflow(溢出)?
●32×1024為什麼不是32768而是Overflow(溢出)這個結果?這個問題要從資料形態開始講起,當我們設定一個變數為整數時,程序會向作業
系統要求2Byte(32bits)來存放資料,其可存放的范圍為-32768 ~ +32767(在VB時),當數值超過這個范圍時,因內存空間已固定為2Byte,無
法法再增加,在C語言里只取2Byte,而VB會造成溢出現象而停止程序執行。
例如:
Private Sub command1_Click()
Dim A As Integer
A = 32768
End Sub
●結果執行時會溢出
Private Sub command1_Click()
Dim B As Integer
A = -32769
End Sub
●結果執行時會溢出
Private Sub command1_Click()
Dim C As Long
C = 32 * 1024
End Sub
●結果會如何?答案依然是溢出。因為VB在做數值運算時,會先開一個內存地址來存放計算結果,然後在傳送到你指定的變數里,如上一個程
序,變數C雖然是長整數,其可存放數值范圍為-2,147,483,648 ~ +2,147,483,647,但VB作計算時,將32判斷成整數,1024 也判斷成整數,
就任意在某個位置的內存上開啟 2Byte大小來存放32×1024的值再回存至變數C,但32×1024已超過任意在某個地址的內存2Byte的大小,故溢
出。
●同理,C = -32768 - 1與 C = 32767 + 1 都也會溢出。
Private Sub command1_Click()
Dim C As Long
C = 32 * 32768
End Sub
●結果會如何?答案是1048576。為什麼計算又變正常呢,因為VB在做此數值運算時,將32判斷為整數,因為32768超過整數的范圍,因為判斷
成長整數,就任意在某個位址的內存上開啟 4Byte大小來存放32×1024的值再回存至變數C,因此32×32768可以正常計算。
●怎麼解決溢出問題呢?答案就是轉換變數的類型,如下:
Private Sub command1_Click()
Dim D As Long
D = CDec(32) * CDec(1024) '轉成十進制
D = CDec(-32768) - CDec(1) '轉成十進制
D = CLng(32) * CLng(1024) '轉成工整數
D = CLng(32767) + CLng(1) '轉成長整數
End Sub
❹ VB中內存溢出,怎麼回事,就這么簡單的代碼
你好!
出現此情況一般是因為:
1、安裝VB時少系統必需的文件,卸了重裝;
2、VB安裝本身有問題,換一種版的安裝程序試試;
3、VB安裝好後,可能用清理軟體將VB的文件給除去了,或VB與別的軟體有版本上的沖突,重新安裝;
祝你成功!
❺ VB內存溢出怎麼辦
內存溢出(錯誤 7)
需要更多的內存空間,或是遇到 64K 段邊界限制。此錯誤有以下的原因和解決方法:
打開了太多的、文檔或資源文件。
關閉不需要的應用程序、文檔或資源文件。
模塊或過程太大了。
將龐大的模塊或過程分成幾個。雖然這樣不能節省內存空間,但可避免 64K 段邊界限制。
在 Microsoft Windows 標准模式下執行。
按增強方式重新啟動 Microsoft Windows 。
在 Microsoft Windows 增強方式下執行,但超出了虛擬內存的空間。
空出一些磁碟空間以增加虛擬內存,或至少確保有空餘的空間。
一些駐留程序在運行。
減少一些駐留程序。
設備驅動程序裝載的太多。
減少一些不需要的設備驅動程序。
Public 變數超出了空間。
減少 Public 變數的數量。詳細信息,可選取有問題的項目,並按下 F1 鍵