空引用错误,如何解决?

时间:2013-07-01 10:09:16

标签: c++ c winapi win32gui

我有一个错误。调试器说0cx000000或类似于访问冲突的东西,在线阅读后我发现与内存访问冲突或指向t0空内存位置有关。 Similar,但不是相同的代码,示例似乎正在起作用。我不明白这个问题。或者我不明白如何解决这个问题。

精确错误:

  

myfile.exe中0x00000000处的未处理异常:0xC0000005:访问冲突读取位置0x00000000 on。

主档案:

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);

我知道这个含糊不清的信息很少。特别是涉及很多头文件。但是,这段代码中的问题/解决方案是否明显?问题是null引用(??)。什么是解决方案?

2 个答案:

答案 0 :(得分:1)

您应该提供“myFunction”的定义。我希望它能让我们更好地理解问题。检查您是否正在传递wdev的地址,但值未初始化,并检查您是否收到了正确的指针。

答案 1 :(得分:0)

我在加载库时遇到了一些问题。只是探索了一点,实际上是固定的。引用hmjd:

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

<强>感谢