问题标签 [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.

0 投票
4 回答
2816 浏览

c++ - 关于 GetProcAddress

我有 MyDll.dll 及其函数定义如下

当我尝试在另一个项目中使用该函数时,我无法使用GetProcAddress(). 这是我的代码:

我得到的输出为:

但是当我尝试使用像 glut32.dll 这样的已知 DLL 及其函数时,它工作正常。

我认为它的功能可能有问题

有人可以在这方面帮助我吗?

0 投票
2 回答
445 浏览

dll - getprocaddress 与 dll 和 exe 不同

我正在尝试使用 GetProcAddress 获取 GetProcAddress 的地址(是的。自己调用它)。当我从一个空的 exe 项目中执行此操作时,我得到一个有效地址(在 kernel32 的分配地址之间)。

当我从 dll 调用它时,我得到了无效的地址(不在分配的 kernel32 范围内)

有什么不同?我在 64 位的 Windows 7 上运行。

该项目编译为 32 位。这是我正在运行的代码:

typedef FARPROC (WINAPI * GetProcAddressType)(HMODULE , LPCSTR );

HMODULE kernel32Hmodule = LoadLibraryW(L"c:\windows\system32\kernel32.dll");

GetProcAddressType abc = (GetProcAddressType)GetProcAddress(kernel32Hmodule, "GetProcAddress");

我也试图得到这样的地址: void* a = GetProcAddress; 但从 dll 运行时它返回相同的无效地址...

请帮忙。

0 投票
3 回答
1981 浏览

delphi - FireMonkey 应用程序中未声明的标识符“GetProcAddress”

我正在尝试通过 Firemonkey 框架使用 Delphi XE2 来制作一个插件系统。问题是我收到错误 GetProcAddress is undeclared identifier。当我尝试在 VCL 项目中使用 GetProcAddress 时,一切正常,那么在谈论 GetProcAddress 以及如何在 Firemonkey 应用程序中使用它时,VCL 和 Firemonkey 有什么区别。

谢谢

0 投票
3 回答
874 浏览

c# - 从 .NET 动态解析 C stdlib 函数

我想解析来自 C stdlib 的函数的地址,例如malloc在运行时从 .NET 代码(这样我就可以为我的 VM 调用这些地址的 JIT 机器代码)。我相信我应该使用LoadLibraryGetProcAddress提供 kernel32.dll 但这不起作用。使用 F# 交互式我得到:

所以这似乎已经获得了 DLL 的句柄,但试图解析malloc却返回了一个 NULL 指针。

我该怎么做?

0 投票
1 回答
7409 浏览

function - 如何使用 GetProcAddress 函数调用 MessageBox?

我想以这种方式调用 MessageBox() 函数:

1)。加载所需的库
2)。获取函数地址
3). 称它为

因此,对于我理解的目标,我应该在 MessageBox 函数中定义具有所有类型参数的新类型。

它返回 INT 并接受:HWND、LPCSTR、LPCSTR、UNIT。

所以我注册了新类型:

我在调用此类函数时遇到问题。这种方式适用于所有功能还是仅适用于导出?
我怎样才能以这种方式准确地调用 MessageBox?

完整代码:

0 投票
2 回答
12612 浏览

c++ - getProcAddress - 返回 NULL

我有以下代码:

我知道 init_stdout 是 NULL。可能是什么问题?句柄是好的(非空)谢谢

0 投票
1 回答
905 浏览

delphi - 获取另一个进程的过程/函数地址

我正在编写一个显示所有打开进程的线程列表的程序。

使用类似的程序(Process Explorer),我可以看到线程列表,其中包含一些信息,如线程 ID、优先级、起始地址等。

我也可以检索所有这些信息,但 Process Explorer 显示的起始地址如下:

如何在ProcedureName不注入 dll 的情况下使用 GetProcAddress?

0 投票
2 回答
8341 浏览

c++ - 制作一个 VB-dll 并将其加载到 C++ 应用程序中

我有一个问题困扰了整整一个星期,但我无法自己解决。我一直在谷歌搜索,并在各种论坛中搜索......我发现了很多“这可能有效”,尝试过,但没有,没有成功。如果有人有任何线索,请,请,帮助我!

我从外部来源获得了许多用 VB 编写的类和函数,我需要能够从 C++ 应用程序中使用这些类和函数。我的第一个想法是:没问题,我将 VB 代码转换为 dll,然后从我的 C++ 程序中加载它。这虽然比我想象的要难。我的 C++ 程序不是用 Visual Studio 编写的,但为了简单起见,我开始尝试从 Visual Studio C++ 应用程序加载我的 VB dll(用 Visual Studio 2010 编写)。到目前为止,这是我的代码:

VB代码:DllModule:类库项目

DLL模块.vb

DllModule.def

C++ 代码:TryVbDllLoad:控制台应用程序

TryVbDllLoad.cpp

我可以加载 dll,但 GetProcAddess 返回 NULL,错误代码为 127(找不到指定的过程)。

我试图从 VB 应用程序加载 dll。这有效(即使没有 .def 文件)。但我猜没有创建 C++ 应用程序可以使用的正确入口点(当我在 Dependency Walker 中打开 dll 时,我看不到入口点或函数)。我尝试在有和没有“注册 COM 互操作”的情况下编译 VB 代码。

1)我做错了什么?

2)如果没有任何好的方法可以正确解决这个问题,我能做什么而不是创建一个dll?有没有其他方法可以在我的 C++ 应用程序中使用 VB 类和函数?

亲切的问候

萨拉



谢谢你的回答马!

我的 dll 中一定有某种错误,因为当我尝试注册时使用 regsvr32 我得到:“模块 C:/tmp/DllModule.dll 已加载,但未找到 DllRegisterServer 的起始地址。检查C:/tmp/DllModule.dll 是有效的 DLL 或 OCX 文件,然后重试。”

另外,当我使用

#import "C\tmp\DllModule.dll"

我明白了

fatal error C1083: Cannot open type library file: 'c:\tmp\dllmodule.dll'


我查看了教程的链接,但有一个小问题:在所有项目类型中没有“ActiveX DLL”之类的东西可供选择。是的,我确实有 Visual Studio 2010 Professional(试用版,但仍然如此)。

——萨拉

0 投票
2 回答
1828 浏览

c - GetProcAddress 奇怪的返回地址

有人解释了为什么下一个代码在 ntdll.dll 中返回一个指针?

PS:如果调用 kernel32 的导出表指向的函数,会抛出断点。

0 投票
4 回答
1834 浏览

c++ - 快速一:Struct成员的GetProcAddress?

假设我在 DLL 中有以下结构定义:

然后可以从加载 DLL 的主应用程序执行以下操作:

我的问题是是否有可能做一些类似的事情:

  • 如果你明白我想要什么并且这是可能的;语法是什么?
  • 如果不可能;为什么?
  • 如果你不明白我的问题;在评论中这么说!

问候并希望得到答案!