簡體   English   中英

空引用錯誤,如何解決?

[英]Null Reference Error, how to solve it?

我有一個錯誤。 調試器說0cx000000或類似的訪問沖突,在聯機閱讀后,我發現這與內存訪問沖突或指向t0空內存位置有關。 Similar但不相同的代碼,示例似乎有效。 我不明白這個問題。 或者我不明白如何解決這一問題。

精確錯誤:

myfile.exe中0x00000000處未處理的異常:0xC0000005:訪問沖突讀取位置為0x00000000。

主文件:

MSG Msg;
HWND hWnd;

static void doSth(FIX32 propert[])
{
UINT wdev;
myFunction(WTI_DEFCONTEXT, CTX_DEVICE, &wdev);
.
.
.
}

WndProc()
{
switch(Msg){

case WM_CREATE:
    doSth(propert);
    return 0;
}

WINAPI WinMain(...)
{
hWnd=Create...

return Msg.wParam;
}

源代碼:

Bool LoadD(void)
{
libr=LoadLibrary(...);
GetProcessAddress(libr,myFunction);
return TRUE;
}

void UnloadD(void)
{
FreeLibrary(libr);
myFunc=NULL;
}

我有鏈接問題。 解決了。 但是這個指針問題給我帶來了麻煩。 調試器指向代碼中的兩行。

myFunction(WTI_DEFCONTEXT, CTX_DEVICE, &wdev);
doSth(propert);

我知道這是很少的信息。 特別地,也涉及很多頭文件。 但是,從此代碼可以明顯看出問題/解決方案嗎? 問題是空引用(??)。 什么是解決方案?

您應該提供“ myFunction”的定義。 我希望它可以使我們更好地理解問題。 檢查您正在傳遞wdev的地址,但值未初始化,並檢查您是否接收到正確的指針。

我在加載庫時遇到了一些問題。 只是探索了更多而實際上已修復。 引用hmjd:

Does LoadLibrary() succeed? Where is the result of GetProcAddress() stored and does it succeed?

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM