【发布时间】:2016-07-22 08:59:35
【问题描述】:
有这个库被其他程序用作参考:https://github.com/RetroAchievements/RASuite/tree/master/RA_Integration
我已经下载了已编译的程序(与已编译的库一起提供)并且它们工作正常。我的目标是对库代码进行更改,重新编译它并用我自己编译的 DLL 替换我下载的编译程序的 DLL。像这样:
ProgramA.exe
|_ RA_Integration.dll < replace with my own (built)
在更改代码之前,我只是尝试编译 DLL 并在我下载的已编译程序中使用它。我不愿意自己重新编译程序,因为它会因为依赖等原因工作太多。而且我也希望能够将 DLL “运送”给任何想要我修复的人。
所以我已经下载了那个库的源代码,自己重新编译成功但是当我使用它而不是程序附带的那个时,它们没有启动(Windows事件查看器说有问题加载我的 DLL)。
我假设我的系统与构建原始 DLL 的系统存在差异,这就是它失败的原因。我的问题是:我能找到这些差异吗?虽然我是一名专业的 .NET 程序员(因为这是我的工作),但我是一名 C++ 新手,我无法理解所有那些似乎会从一台机器到另一台机器提供不同构建/结果的链接器/预编译器/依赖项/C++ 东西.
我所能找到的是,在项目属性中,“平台工具集”是“Visual Studio 2013 - Windows XP (v120_xp)”,因此我安装了 Visual Studio 2013(带有更新 5,因为它似乎是 Windows XP基本 VS2013 中不存在支持)但这似乎还不够。我运行的是 Windows 10,这肯定不是最初程序员几年前编译 DLL 时使用的操作系统,但不确定这是否重要?
是否可以从 DLL 本身或项目中找到任何可以提示我在系统上需要什么的东西?
希望这是有道理的。
谢谢
【问题讨论】: