_CrtIsValidPointer 問題
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
從微軟站點:
檢查指針有效性下面的示例使用 _CrtIsValidPointer 驗證給定的內存范圍對于讀或寫是否有效。
_ASSERTE(_CrtIsValidPointer( address, size, TRUE );
下面的示例使用 _CrtIsValidHeapPointer 驗證指針指向本地堆(由 C 運行時庫的這個實例創建和管理的堆;
DLL 可以有它自己的庫實例,因而也可以有它自己的、位于應用程序堆之外的堆)中的內存。
該斷言不僅捕捉空地址或超出邊界的地址,還捕捉指向靜態變量、堆棧變量和其他任何非本地內存的指針。
_ASSERTE(_CrtIsValidPointer( myData );
========
從CSDN.NET _CrtIsValidHeapPointer(pUserData)的問題: _CrtIsValidHeapPointer確認內存地址在本地堆。……
如果靜態鏈接C運行庫,那么,dll擁有一個獨立于應用程序(調用它的exe)的本地堆。
(所以你上面的程序會Debug Assertion Failed),如果沒有定義_DEBUG,那么_CrtIsValidHeapPointer將被預處理器移除。
如果是:Debug Assertion Failed!
解決的方法有二:
1、動態鏈接C運行庫:
2、設置統一的Debug/Release版本(比如全部設置為release版本);
(ok) 如果“Assertion Failed”的話,估計程序是會出問題的.
本文來自http://blog.csdn.net/yecao_kinux/archive/2007/03/26/1541740.aspx
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成