我有一个错误。调试器说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引用(??)。什么是解决方案?
答案 0 :(得分:1)
您应该提供“myFunction”的定义。我希望它能让我们更好地理解问题。检查您是否正在传递wdev的地址,但值未初始化,并检查您是否收到了正确的指针。
答案 1 :(得分:0)
我在加载库时遇到了一些问题。只是探索了一点,实际上是固定的。引用hmjd:
Does LoadLibrary() succeed? Where is the result of GetProcAddress() stored and does it succeed?
<强>感谢强>