3

我遇到了一个奇怪的问题。更新到最新的ffmpeg headers/lib/dll后,我不断收到错误消息:

The procedure entry point __glewProgramUniform1i could not be located in the dynamic link library

如果我更改为使用静态链接链接到 glew,那么该特定错误就会消失,而是抱怨其他一些 dll 中的一些其他过程入口点,依此类推。

一旦恢复到旧的 ffmpeg headers/lib/dll,问题就会消失。

什么可能导致这种行为?我该如何调试?

注意:这只发生在发布版本期间,而不是在调试版本期间。

在此处输入图像描述

在此处输入图像描述

取决于配置文件日志:

Started "CONHOST.EXE" (process 0x1BBC) at address 0x000007F63CF60000.  Successfully hooked module.
Loaded "NTDLL.DLL" at address 0x000007F945C30000.  Successfully hooked module.
Loaded "KERNEL32.DLL" at address 0x000007F943400000.  Successfully hooked module.
Loaded "KERNELBASE.DLL" at address 0x000007F942D10000.  Successfully hooked module.
DllMain(0x000007F942D10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNELBASE.DLL" called.
DllMain(0x000007F942D10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNELBASE.DLL" returned 1 (0x1).
DllMain(0x000007F943400000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL32.DLL" called.
DllMain(0x000007F943400000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL32.DLL" returned 1 (0x1).
Injected "DEPENDS.DLL" at address 0x000000005ACD0000.
DllMain(0x000000005ACD0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DEPENDS.DLL" called.
DllMain(0x000000005ACD0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DEPENDS.DLL" returned 1 (0x1).
Loaded "GDI32.DLL" at address 0x000007F945970000.  Successfully hooked module.
Loaded "USER32.DLL" at address 0x000007F943860000.  Successfully hooked module.
Loaded "MSVCRT.DLL" at address 0x000007F945430000.  Successfully hooked module.
Loaded "IMM32.DLL" at address 0x000007F945320000.  Successfully hooked module.
Loaded "OLEAUT32.DLL" at address 0x000007F9454E0000.  Successfully hooked module.
Loaded "COMBASE.DLL" at address 0x000007F9457C0000.  Successfully hooked module.
Loaded "MSCTF.DLL" at address 0x000007F944FD0000.  Successfully hooked module.
Loaded "RPCRT4.DLL" at address 0x000007F944CF0000.  Successfully hooked module.
Entrypoint reached. All implicit modules have been loaded.
DllMain(0x000007F943860000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "USER32.DLL" called.
DllMain(0x000007F945430000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "MSVCRT.DLL" called.
DllMain(0x000007F945430000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "MSVCRT.DLL" returned 1 (0x1).
DllMain(0x000007F943860000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "USER32.DLL" returned 1 (0x1).
DllMain(0x000007F945970000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "GDI32.DLL" called.
DllMain(0x000007F945970000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "GDI32.DLL" returned 1 (0x1).
DllMain(0x000007F944FD0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "MSCTF.DLL" called.
DllMain(0x000007F944FD0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "MSCTF.DLL" returned 1 (0x1).
DllMain(0x000007F945320000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "IMM32.DLL" called.
DllMain(0x000007F945320000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "IMM32.DLL" returned 1 (0x1).
DllMain(0x000007F944CF0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "RPCRT4.DLL" called.
DllMain(0x000007F944CF0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "RPCRT4.DLL" returned 1154577921 (0x44D17601).
DllMain(0x000007F9457C0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "COMBASE.DLL" called.
DllMain(0x000007F9457C0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "COMBASE.DLL" returned 1 (0x1).
DllMain(0x000007F9454E0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "OLEAUT32.DLL" called.
DllMain(0x000007F9454E0000, DLL_PROCESS_ATTACH, 0x00000019CF36F8C0) in "OLEAUT32.DLL" returned 1 (0x1).
Loaded "UXTHEME.DLL" at address 0x000007F941950000.  Successfully hooked module.
DllMain(0x000007F941950000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "UXTHEME.DLL" called.
DllMain(0x000007F941950000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "UXTHEME.DLL" returned 1 (0x1).
Error writing a breakpoint at the entrypoint return of "".  Entrypoint cannot be hooked. Invalid access to memory location (998).
Loaded "" at address 0x00000019D1220000.  Successfully hooked module.
Unloaded "" at address 0x00000019D1220000.
Loaded "START8_64.DLL" at address 0x000007F93A130000.  Successfully hooked module.
DllMain(0x000007F93A130000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "START8_64.DLL" called.
GetProcAddress(0x000007F943860000 [USER32.DLL], "CreateWindowInBand") called from "START8_64.DLL" at address 0x000007F93A1C0941 and returned 0x000007F943872C20.
LoadLibraryA("ADVAPI32.dll") called from "START8_64.DLL" at address 0x000007F93A1A1D5C.
Loaded "ADVAPI32.DLL" at address 0x000007F944E40000.  Successfully hooked module.
Loaded "SECHOST.DLL" at address 0x000007F9439B0000.  Successfully hooked module.
DllMain(0x000007F9439B0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SECHOST.DLL" called.
DllMain(0x000007F9439B0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SECHOST.DLL" returned 1 (0x1).
DllMain(0x000007F944E40000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "ADVAPI32.DLL" called.
DllMain(0x000007F944E40000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "ADVAPI32.DLL" returned 1 (0x1).
LoadLibraryA("ADVAPI32.dll") returned 0x000007F944E40000.
GetProcAddress(0x000007F944E40000 [ADVAPI32.DLL], "RegOpenKeyExW") called from "START8_64.DLL" at address 0x000007F93A1A1E59 and returned 0x000007F944E413D0.
GetProcAddress(0x000007F944E40000 [ADVAPI32.DLL], "RegQueryValueExW") called from "START8_64.DLL" at address 0x000007F93A1A1E59 and returned 0x000007F944E413F0.
GetProcAddress(0x000007F944E40000 [ADVAPI32.DLL], "RegCloseKey") called from "START8_64.DLL" at address 0x000007F93A1A1E59 and returned 0x000007F944E413B0.
GetProcAddress(0x000007F943860000 [USER32.DLL], "GetWindowBand") called from "START8_64.DLL" at address 0x000007F93A1C0A91 and returned 0x000007F943863210.
GetProcAddress(0x000007F943860000 [USER32.DLL], "SetWindowBand") called from "START8_64.DLL" at address 0x000007F93A1C0AC1 and returned 0x000007F943872BB0.
DllMain(0x000007F93A130000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "START8_64.DLL" returned 1 (0x1).
Loaded "DWMAPI.DLL" at address 0x000007F941120000.  Successfully hooked module.
DllMain(0x000007F941120000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DWMAPI.DLL" called.
DllMain(0x000007F941120000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DWMAPI.DLL" returned 1 (0x1).
Loaded "COMCTL32.DLL" at address 0x000007F940010000.  Successfully hooked module.
DllMain(0x000007F940010000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMCTL32.DLL" called.
DllMain(0x000007F940010000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMCTL32.DLL" returned 1 (0x1).
Loaded "OLE32.DLL" at address 0x000007F945AB0000.  Successfully hooked module.
DllMain(0x000007F945AB0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLE32.DLL" called.
DllMain(0x000007F945AB0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLE32.DLL" returned 1 (0x1).
Loaded "CRYPTBASE.DLL" at address 0x000007F9429A0000.  Successfully hooked module.
Loaded "BCRYPTPRIMITIVES.DLL" at address 0x000007F942940000.  Successfully hooked module.
DllMain(0x000007F942940000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "BCRYPTPRIMITIVES.DLL" called.
DllMain(0x000007F942940000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "BCRYPTPRIMITIVES.DLL" returned 1 (0x1).
DllMain(0x000007F9429A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CRYPTBASE.DLL" called.
DllMain(0x000007F9429A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CRYPTBASE.DLL" returned 1 (0x1).
Loaded "SHCORE.DLL" at address 0x000007F941D20000.  Successfully hooked module.
DllMain(0x000007F941D20000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHCORE.DLL" called.
DllMain(0x000007F941D20000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHCORE.DLL" returned 1 (0x1).
4

1 回答 1

1

您很可能已经更新了 .h 和 .lib 文件,但链接到了过期的 DLL。确保您的程序链接到的 DLL 与 .h 和 .lib 文件匹配。

您可以通过在配置文件模式下运行 Dependency Walker 来调试程序加载时发生的情况。这将显示实际加载的 DLL 的完整路径,然后您将能够找出问题所在。

于 2012-12-30T19:45:00.893 回答