gpt4 book ai didi

c++ - 如何确定哪个 Windows DLL 正在用于函数调用?

转载 作者:可可西里 更新时间:2023-11-01 11:28:26 27 4
gpt4 key购买 nike

我一直在研究 _vsnprintf 并了解到它在 ntdll.dll 和 msvcrt.dll 中可用。

我可以使用GetModuleHandleGetProcAddress 来访问_vsnprintf,例如:

static int(__cdecl *p__vsnprintf)(char *str, size_t count, const char *format, va_list valist);

static void init(const char *dll)
{
HMODULE hmod = GetModuleHandleA(dll);
if (hmod)
{
printf("*** Testing %s ***\n", dll);

p__vsnprintf = (void *)GetProcAddress(hmod, "_vsnprintf");
if (p__vsnprintf) test__vsnprintf();
else printf("_vsnprintf not found in %s.\n", dll);
}
else printf("*** Unable to load %s ***\n", dll);

printf("\n");
}

int main(void)
{
init("ntdll.dll"); /* ntdll _vsnprintf */
init("msvcrt.dll"); /* msvcrt _vsnprintf */

printf("*** Testing normal function call ***\n");
test_vsnprintf(); /* _vsnprintf in ??? */

return 0;
}

对于通用调用,我如何判断 Windows 是否正在使用来自 ntdll.dll 或 msvcrt.dll 的 _vsnprintf

最佳答案

dumpbin/imports 会告诉你。另外,方便的 depends utility .

关于c++ - 如何确定哪个 Windows DLL 正在用于函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27774711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com