问题标签 [getprocaddress]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dll - vb6中如何调用dll导出函数?
如何在 vb6 中调用 dll 导出功能?CallWindowProc 已限制在参数中。例如如何调用这个功能?
c# - How to load dll dynamically and pass/get value to it?
In DllImport
I can do this:
But I want to decide which dll to load at run time.
So I'm not using DllImport
but try this:
But how can I define Sub
as int Sub(int a, int b);
like I'm using DllImport
?
c# - C# 程序调用 C# dll
我想使用 C# exe 动态加载由 C# 或 C++ 构建的 dll,C++ dll 部分已完成,但 C# dll 尚未完成,因为 exe 在 C# dll 中找不到方法。
这是我将构建 CSharp.dll 的 C# dll 代码:
这是我的 C# exe 代码:
如果我正在加载 Cpp.dll,if ((int)intPtr == 0)
则将为假,而加载 CSharp.dll 将为真,所以我猜我需要编辑string FuncName = "NamespaceName@ClassName@MethodName";
其他内容。我怎样才能解决这个问题?
c++ - 如何在 C++ 中动态定义成员函数
我有这个对象,它只是 Windows 中外部 dll 的包装器。在创建对象时,构造函数会在注册表中查询键,然后使用 dll 查询该键的值以查找文件夹,然后加载 dll,获取此 dll 的初始化程序的 ProcAddress 并对其进行初始化。
然后,我想向其他客户提供这个 dll 的所有功能,所以我的类包装器提供了成员函数来检查我们是否有GetProcAddress '它,如果没有,那么我们就这样做,获取指向这个函数的指针,然后调用它。
我不想在构造函数时执行所有 GetProcAddress,因为有数百个函数,并且很可能给定的客户端只需要一小部分,所以 GetProcAddress 一切都是浪费。
但是现在,我需要定义这些函数,感觉就像一个巨大的复制粘贴。所有成员函数都在做完全相同的事情,比如
这真的感觉像是一个非常次优的解决方案。我觉得必须有某种方法来模板化所有这些代码,以便在编译时正确生成。或者也许最初的方法不是最好的开始,我不确定。
c++ - 如何使用 WinDbg 查找“GetProcAddress”函数的过程名称
我想用来GetProcAddress
在加载的 DLL 中获取一些函数地址。x
我在 PSAPI 库上运行了一些尝试,我可以看到预期的 proc 名称与我在 WinDbg语句中找到的符号名称不同。例如,我寻找“EnumProcessModules”(这是GetProcAddress
方法预期的名称)x psapi!*EnumProcessModules*
,我发现
当我将上面找到的任何符号(带有或不带有“PSAPI!”作为前缀)GetProcAddress
作为第二个参数(procName)提供给该方法时 - 它返回 NULL,但是当我使用方法名称“EnumProcessModules”时 - 它返回 0xfe111030 ,即“PSAPI!EnumProcessModulesStub”的地址。
procName
我怎么能提前知道预期?如果我在一个 DLL 中有 2 个具有相同方法名称的不同类或命名空间怎么办?调用时如何区分这两个方法名称GetProcAddress
?
java - 如何将 GetProcAddress 与 JNA 一起使用?
首先,我是JNA新手。我想通过 Java 代码控制主板的 LED 灯。华硕为此提供了一个用 C(C++?)编写的 SDK。
他们的头文件看起来很简单:
我使用 JNAerator 来获取 JNA 映射,这是我得到的结果:
在示例 C++ 代码中,他们使用 GetProcAddress 来获取上述方法的地址,这样他们就可以调用它们:
我如何对 JNA 做同样的事情?
提前致谢。
dll - 如何显式加载通常在编译时链接的 DLL 文件?
我有一个库(PythonXX.dll),需要在运行时有条件地加载。为了支持它,有大量的包含文件和超过一千次调用。
好消息是我可能只使用了大约 20-30 个,但设置所有这些 GetProcAddress() 调用仍然很痛苦。我还希望/需要使用带有本机名称的例程(例如,PyNumber_Long,而不是 MyPyNumber_Long)。
有没有更好或更首选的方法来做到这一点?
c - 如何动态加载每个需要的功能
我正在尝试找到一种方法来动态加载我需要使用的每个 Windows API 函数。例如,要使用printf
函数,我会执行以下操作:
这是一个快速编码的工作片段。这样做很容易,因为我按照指南告诉我可以printf
从crtdll.dll
. 但是,现在我想加载该CreateFileA
函数,但我不知道如何找到要加载的正确 dll。
我已经尝试用 Google 搜索一些东西并在 MSDN 上进行搜索,但我没有找到任何东西。一般来说,给定一个函数(一个常见的函数,例如 in 或 中的一个windows.h
)stdio.h
,stdlib.h
我如何找到要加载的 dll?
注意 我知道你们中的一些人可能认为这种方式加载功能没有用。然而,这不是真正的程序。在真实的情况下,地址LoadLibraryA
和GetProcAddress
是手动找到的,我可以编写代码然后从 PE 中导出段。
c - 从使用非标准路径加载的 DLL 加载符号,该路径转发到另一个 DLL
我正在尝试动态加载不在正常搜索路径上的 DLL (python3.dll)。我可以使用更改的搜索路径加载它,但是当我这样做时GetProcAddress
,它失败了(因为我正在加载的函数转发到另一个 DLL,python37.dll)。
我认为我需要做的是GetProcAddress
遵循与原始 DLL 加载相同的搜索逻辑,但我不知道如何在不改变系统的情况下做到这一点PATH
(正如我的代码一样,它还有各种其他潜在问题让用户运行自己的代码,这需要原始路径)。
有没有一个干净的解决方案?
这是我尝试过的代码:
添加SetDllDirectory()
似乎没有帮助,但我只是将它的调用转储到代码中,因为我不是 100% 清楚它是如何工作的,所以我可能做错了什么。
作为参考, Py_Main 符号的定义是
c++ - 为什么 GetProcAddress 不能与 OutputDebugString 函数一起使用
我一直在尝试使用GetProcAddress
kernel32.dll 中的几个函数。它工作得很好,除了“OutputDebugString”函数。
我的代码: