我有一个DLL(WinDll.dll),它导出一个名为“SampleFunction”的函数。DLL与正在执行的应用程序位于同一文件夹中。现在,当我尝试按名称获取导出函数的地址时,它会给出错误127,但是,当我使用函数的序号值执行相同操作时,一切正常。任何想法如何以及为什么会发生这种情况?以下是加载并尝试使用导出函数的代码。我还附上了IDAProo的剪辑,其中显示了从WindDll.dll导出的函数。#include#includetypedefint(WINAPI*ProcP)(HINSTANCE,HINSTANCE,LPSTR,int);intWINAPIWinMain(HINST
这个问题在这里已经有了答案:Howtomakea.libfilewhenhavea.dllfileandaheaderfile(6个答案)关闭8年前。我的一个friend让我创建一个应用程序来使用“VellemanVM167”来控制一些东西。这个VM167只不过是一个带有一些GPIO和几个ADC的USB接口(interface)卡。此VM167附带一个SDK,由两个DLL(VM167.dll和MPUSBAPI.dll,怀疑第一个DLL中使用了最后一个)和一个头文件VM167.h组成我以前在Delphi中成功使用过该卡,但现在想转换为Qt。由于这只是一个简单的项目,我认为现在正是时候。我
我有一个在python2.7.3(windows)上运行的代码,我尝试在python2.7.8(windows)上运行它并得到以下错误:main:INFO**开始Main**Traceback(mostrecentcalllast):File"C:\wamp\www\prenderer\src\main.py",line82,innuke_process=launch_nuke()File"C:\wamp\www\prenderer\src\main.py",line31,inlaunch_nukequery=subprocess.Popen(r"queryprocess",stdou
我有以下文件结构C:\Application\application.exeC:\Application\plugins\myplugin\myplugin.dllC:\Application\plugins\myplugin\libs\utils.dll此处application.exe通过LoadLibrary动态加载myplugin.dll。请注意,我无法控制application.exe,因为我只是在开发插件。我想要的是通过相对路径让myplugin.dll加载libs\utils.dll(理想情况下使用静态链接)。也就是说,我不想依赖于application.exe的位置。我
我正在尝试将我的WindowsPhone8应用程序移植到Windows10。我能够构建我的应用程序。当我尝试在移动模拟器上以Releasex86部署我的应用程序时,它失败并给出以下消息:Symbolsforntdll.dllcouldnotbedownloadedfromMicrosoftSymbolServers.Exceptionstringandcallstacksmaynotworkcorrectly.Makesureyouhavenetworkconnectionandtryagain尽管我试图在Release模式下运行我的应用程序,但我不确定为什么VS-2015会尝试下载这
每当我们重新编译一个exe或DLL时,即使源代码相同,它的二进制镜像也会不同,这是由于镜像中的各种时间戳和校验和。但是,我们的质量体系意味着每次发布新的DLL时,都必须再次执行相关的验证测试(通常是手动的,这会花费大量时间。)因此,我们的目标是避免释放尚未实际更改的DLL。即:有一个自动程序(脚本、工具等...)仅根据它们包含的有意义的信息(代码和数据)检测不同的Dll,忽略时间戳和校验和。有什么好的方法可以实现吗? 最佳答案 以版本信息为基础,只有在实际进行更改时才更新版本信息。 关于
我正在用C编写一个应用程序,它可以在运行时通过模块/共享对象/DLL进行扩展。这些模块可能会使用现有程序的API,但也可能会提供新功能供以后加载的模块使用,因此模块之间存在相互依赖的可能性。我目前在Linux下的做法是让每个模块都定义一个depends()函数,该函数返回它所依赖的其他模块名称的列表。这样,我就可以自行编译和链接每个模块,使用dlopen()和RTLD_LAZY加载模块,首先解决其依赖关系,然后使用RTLD_GLOBAL完全加载它。这工作得很好并且完全符合我的要求。它还允许我用不同版本替换一个模块,而无需重新编译依赖它的所有其他模块。将其移植到Windows时会出现实际
这来自previousposting我提出缺少用于软件安装的干净测试机。我在解释DLL依赖项如何工作以及某些机器在安装时可能没有正确的库方面做得很糟糕。问题在于它被视为构建过程中的缺陷。我正在努力教育高层,这不是构建过程本身,而是安装过程应该受到指责。下面引用我老板的话,将分包商的工作与我们的工作联系起来,以便正确看待:I'mnotasoftwareperson.AllIseeisthatwhentheyhandsomethingtousitjustworksbutwhenwehandsomethingtotheclientthere'sallsortsofproblems.There
目前,我有一个C++exe项目,动态加载N个DLL。这些DLL将执行对exe项目中的函数的调用。现在,在我的exe项目中,我想知道调用者来自哪些DLL。是否可以使用任何可用的WindowsAPI来做到这一点? 最佳答案 这取决于您的实际目标。如果您认为DLL可能是恶意的(也就是说,如果您希望它们尝试欺骗您),则不能这样做。但是,如果它只是用于调试或日志记录或类似的相对无害的事情,您可以查看堆栈并获取ret指令将用于返回调用者的地址,枚举加载的DLL和测试该地址在其中的哪一个。要获得“返回地址”,您可以使用_ReturnAddress
我有一个跨平台的C++代码动态库,主要是nativeC++。然后我从我的主exe使用这个动态库。到目前为止,在使用gcc的OSX上一切都很好。现在我在Windows上,我对应该使用什么方法进入dll感到困惑。我目前没有DllMain函数,因为这在gcc中不是必需的(据我所知)。我的初始测试有效,但检查后发现奇怪的是我的一个类构造函数在dll加载时被调用,所以我认为我需要在Windows上做更多的事情。我也是:添加DllMain函数?仅使用noentry编译器选项是否安全?当我执行上述任一操作时,我开始收到编译器提示“.CRT部分存在,可能存在未处理的静态初始值设定项或终止符”我已经使用