问题标签 [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.
c++ - getprocaddress 的类似功能使用结构?
我有一个来自游戏的 DLL,我要导入到 windows32 应用程序中,我已经成功加载它并调用了很多函数。但是,我需要使用的某个功能需要传递给它的结构。
似乎当我反汇编 DLL 时,我可以看到结构中的结构和数据类型,但是我将如何使用这个结构呢?
AFAIK GetProcAddress 不起作用?
我正在寻找一种使用这个结构的方法。
c++ - 指向多参数 C++11 std::function 的函数指针:模板化 GetProcAddress
我试图从另一个调用 GetProcAddress 的函数给出的 FARPROC 地址返回一个函数实例。想出了一个有趣的问题。这是功能:
稍后我将创建一个没有任何问题的无输入函数:
然而,当函数接受输入时,visual c++ 11 编译器会爆炸:
它正确地返回:
错误 C2197:“int (__stdcall *)(void)”:调用参数过多
所讨论的类型等同于 FARPROC,它是 GetProcAddress 返回的内容,与函数的参数列表无关。
我的问题是,在给定 to_function 的简单函数原型的情况下,我将如何通过将 FARPROC 转换为 std::function 的适当类型来解决这个问题?提前喝彩。
getprocaddress - 微过滤程序中未定义的 GetProcAddress
我正在做一个微过滤器项目。如何在微过滤程序中调用 GetProcAddress?我的编译器一直告诉我“GetProcAddress undefined 假设 extern 返回 int”。根据 msdn,我可能需要包含 window.h。但如果我这样做,会发生更多其他编译器错误吗?应该怎么做?
windows - Windows 7 上 LoadIconWithScaleDown 的 GetProcAddress 失败
我正在使用以下代码动态链接到LoadIconWithScaleDown API,以便我的代码能够在 Windows XP 上运行:
我在 Windows 7 上尝试此代码,但“pfnLoadIconWithScaleDown”始终为 NULL。为什么?
dll - 将 Embarcadero C++ Builder XE3 DLL 导入 Embarcadero C++ Builder XE3
我尝试在 Embarcadero C++ Builder XE3 中创建一个 DLL,并在同一环境中的测试项目中使用它。
我以一个教程为例,该教程的代码对我来说效果不佳(!):http ://docwiki.embarcadero.com/RADStudio/XE3/en/Tutorial:_Using_Dynamic_Linked_Libraries_in_C%2B%2BBuilder_Applications
这是我的 DLL 的内容:
BaseAuth.h 文件:
Auth.h 文件:
Auth.cpp 文件:
和 File1.cpp :
现在在测试应用程序中我有:
相同的 BaseAuth.h 文件
带有 Button 的表单:
Test_DLLAuthOrga.h:
Test_DLLAuthOrga.cpp:
结果是:
指针 mpAuth 有一个地址。
但是它的方法没有地址,当我调用诸如“void TestMessage()”之类的简单方法时,它会引发访问冲突。
=> 首先似乎是字符串兼容性的问题(但在“C++ Builder XE3”和“C++ Builder XE3”之间,我希望使用相同的字符串格式?!):使用 Unicode Delphi 调用 DLL 时出错
=> 我发现了一个类似的问题,但是 C++ DLL 进入 Delphi,而不是 C++ DLL 进入 C++ ...:在 Delphi 应用程序中调用 C++ DLL
=> 我尝试使用“HMODULE”而不是“HINSTANCE load;” : 同样的结果。
=>我尝试使用没有成功
代替 :
=>我还尝试用“__cdecl”或“”(删除)替换“__stdcall”:库加载但GetProcAdress返回NULL。
=> 在尝试调用 DLL 的方法“TestMessage()”时我做错了什么?
windows - 构建和覆盖一个简单的 Winelib DLL
我有一个加载库的 Windows 可执行文件,我想创建一个将覆盖 Windows DLL 的 Winelib DLL。我搜索并尝试了2天,但它不起作用!请帮我 !
基本上,我创建 mydll.c 和 mydll.spec 以使用以下命令构建 Winelib DLL:
现在我有mydll.dll.so并且我想覆盖mydll.dll(两者都在同一个地方)我该怎么办?我尝试重命名 mydll.dll 但调用该函数时出现页面错误!我还尝试使用 winecfg 配置覆盖或设置 WINEDLLPATH 等环境变量。我不明白如何进行。
我如何在我的 Windows 可执行文件中加载库
mydll.spec
我的dll.c
loadlibrary - 需要一个非托管 C++ 函数,它可以代表调用者一般地调用许多非托管 DLL 及其函数
在 32 位或 64 位平台上的非托管 C++ 代码中,假设我想提供一个名为 CallDLLFunction 的 API 函数,它将代表其调用者调用一个 DLL 函数。此 API 函数将使用以下参数:
API 函数所知道的关于目标 DLL 函数的唯一信息是通过传递给它的这些参数。有人可以说明您将如何实现此功能吗?我假设(在 Windows 上)LoadLibrary 和 GetProcAddress 必须用于调用“FullyQuialifiedDLLName”DLL 中的“DLLFunction”。所以问题的核心似乎是当参数类型和返回类型不同时,如何以通用的方式使用 GetProcAddress,并且无法系统地列出或提前知道。
c++ - 访问dll方法时访问冲突读取位置
我正在使用以下代码访问 dll 文件中的方法,并且Access violation reading location 0x41100000
在从 dll 方法调用该方法时得到一个。
我试图访问的方法是以下原型
这是我的代码
任何建议可能是什么原因?dll文件中是否有错误?有什么办法可以读取dll文件的参数吗?剖析它以检查我是否得到正确的参数类型?相关性检查器显示该方法存在但我无法确定参数类型?
更新:
我仍然收到错误
test.exe 中 0x0040356c 处的第一次机会异常:0xC0000005:访问冲突写入位置 0x42080000。Cexperiment.exe 中 0x0040356c 处未处理的异常:0xC0000005:访问冲突写入位置 0x42080000。
我也相信这个问题可能与调用约定无关。我相信的原因是因为我没有收到来自 VS2010 的错误消息,指出调用约定可能是一个原因。当我尝试使用其他一些dll。因此,如果调用约定或参数不是问题(如果参数不同,您会得到相同的调用约定消息),那么它可能是其他问题。关于我可以尝试什么的任何建议?
dll - GetProcAdress 与链接器
在对链接 DLL 进行了一些研究之后,我发现了两种不同的加载 DLL 的方法。
第一种方法是使用链接器。我添加了 DLL 头文件和库的路径,并添加到链接器选项以链接它们。然后我所要做的就是包含 DLL 的头文件,它就可以工作了。
第二种方法是使用在windows.h标头中声明的GetProcAdress。这是通过创建一个HINSTANCE并使用LoadLibrary("mylib.dll")(或我要链接的任何 DLL 名称)设置它并将函数点设置为GetProcAdress(hInstance, "myFunction")的地址来完成的。
这两项工作,但我想知道哪个更常用并且是更好的编程实践。对于此事,哪种方法更快。
谢谢!
c++ - 使用visual studio2005和windows mobile SDK调试windows CE工程时getProcAddressW报错
我正在使用Visual Studio 2005
和Windows Mobile 6 Professional Device SDK
调试一个Windows CE
项目(从 Windows 项目复制)。我使用主动同步连接 PC 和 Win CE 设备。然后我创建了一个新的 Windows CE 项目(从 Windows 项目复制,但使用 windows mobile 6 专业设备 SDK 作为平台创建。vc++、智能设备、控制台应用程序)。
当我构建 windows CE 项目时,有一些错误:
它发生在我使用LoadLibrary(_T(xx.dll));
然后我使用之后GetProcAddress(handle,"functionName");
如果我将其更改为使用GetProcAddress(handle, _T("functionName") );
此错误就会消失。但是新的错误
发生时,Function2 来自另一个 DLL 项目(适用于 windows 和 windows CE)。
我不知道我是否清楚地描述了这个问题,但我想问有没有办法让源代码既适用于源代码,又适用Windows
于windows CE
源代码中的某些函数来自不同的 DLL 吗?
任何答案都会被应用!