空引用错误,如何解决

Null Reference Error, how to solve it?

本文关键字:解决 何解决 引用 错误      更新时间:2023-10-16

我有一个错误。调试器显示0cx0000或类似的访问冲突,在联机阅读后,我发现这与内存访问冲突或指向空内存位置有关。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?

谢谢