Configuration 有没有办法比较两个前男友,看看他们之间有什么不同?

Configuration 有没有办法比较两个前男友,看看他们之间有什么不同?,configuration,windows-ce,embedded-resource,decompiler,file-comparison,Configuration,Windows Ce,Embedded Resource,Decompiler,File Comparison,是否有一个工具/流程,通过它我可以反编译两个.exe(其中一个运行在手持设备上,另一个不运行),以便我可以了解不同之处/问题可能是什么 当然,看到一个有“00xA”而另一个有“00xB”对我没有帮助。我指的是一种查看不同代码的方法,或者更可能是一种编译资源或配置文件差异,或者某种构建选项等等 我几乎可以肯定,问题与代码本身(if/while/switch语句等)无关,而是与项目设置有关 我无法比较工作源,因为它不存在-我只有它来自的.exe。我提供的资料来源是它的“合理的传真”,但并不完全相同,

是否有一个工具/流程,通过它我可以反编译两个.exe(其中一个运行在手持设备上,另一个不运行),以便我可以了解不同之处/问题可能是什么

当然,看到一个有“00xA”而另一个有“00xB”对我没有帮助。我指的是一种查看不同代码的方法,或者更可能是一种编译资源或配置文件差异,或者某种构建选项等等

我几乎可以肯定,问题与代码本身(if/while/switch语句等)无关,而是与项目设置有关

我无法比较工作源,因为它不存在-我只有它来自的.exe。我提供的资料来源是它的“合理的传真”,但并不完全相同,至少在项目设置和配置等方面不一样

更新 Re:,我不熟悉一些术语;具体来说,它在哪里谈论“FLATRELEASEDIR”-WTH

在我的电脑上测试CE绑定的*.exe是否可行:

Run depends.exe*
Open my CE-bound** .exe
Stare in wonder at the amazing plethora of errata and data
?

*应该不会与“成人尿布”混淆

**“绑定”如“这就是它要去的地方”

更新2 以下是在我的应用程序上运行Dependency Walker时看到的内容:

…但请注意我的困境

更新3 以下是我为尽可能在PC上复制我的手持环境所做的工作:

我只想复制整个dad burned文件夹(Windows资源管理器中的整个手持设备表示),但它不允许我这么做-它不可复制,所以我只复制了“Program Files”文件夹(其中包含我的应用程序的子文件夹和其他一些我不知道是标准的或自定义的/我们特有的文件夹)

这是来自手持设备,其中的.exe运行正常,因此显然(理论上?)不应该缺少任何模块-Dependency Walker应该运行它并说一切正常

然而,事实并非如此;我得到的结果与上面的p[a,o]相同

注意:即使选择了“选项>配置模块搜索顺序…”>应用程序目录>在Dependency Walker中上移,这也是正确的

因此,即使是一个运行精细测试的.exe也被证明“没有为CE时间做好准备”,我如何使用它来准确地测试哪些必要的文件丢失了(如果有的话)

我是否也需要在其他文件夹上复制,还是什么

更新4 因此,(据推测?)缺失的模块是:

API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
DCOMP.DLL
GPSVC.DLL
IESHIMS.DLL
如果为真,那么为什么.exe在手持设备上运行

注意:手持设备上的其他文件夹包括:

Application Data => only contains "desktop.ini"
BTExplorer
My Documents => contains a "desktop.ini" and several SQLCE databases (*.SDF)
profiles => contains an empty "default" folder
Recycled => contains a single ".lnk" file
Temp => contains a handful of ".tmp" files
Windows => contains a slew of folders and files, including several .DLLs, but none of those listed above
“Program Files”文件夹有一个子文件夹“.NET Compact Framework”,但它是空的

在\Windows\AppMgr文件夹中,有一些有趣的文件,例如:

Microsoft .NET Compact Framework.DAT
Microsoft .NET Compact Framework.DLL
...several other DAT/DLL pairs, including:
Symbol Managed Class Libraries.DAT (no corresponding DLL)
...and even a pair:
SSCS HHS.[DAT,DLL]
--这是我们公司的缩写(SSCS)和项目名称(HHS)

是什么产生了这些?它们是从哪里被引用的

另一个可能的难题是,无法运行.exe的手持设备没有\Windows\AppMgr文件夹,因此没有上面列出的那些.DAT/.DLL文件

更新5 另一个奇怪之处是:

在阅读Andy Wiggly等人的《Microsoft.NET Compact Framework》一书中的“安装在GAC中的文件进入\Windows目录”之后,我尝试将Windows文件夹从手持设备复制到我电脑上名为“3910ProgramFilesFolderCopy”的文件夹下的位置,该文件夹在资源管理器中类似:

C:
    3910ProgramFilesFolderCopy
        Program Files
        Windows <= tried to copy the "Windows" folder from the handeld on top of "3910ProgramFilesFolderCopy" so it would end up here
C:
3910程序文件文件夹副本
程序文件

Windows对于PC,您可以尝试.NET Reflector。

您可以尝试使用dependency walker解除对所需DLL/API的理解,并检查您的设备是否支持这些DLL/API。

你指的是什么手持设备?它们是摩托罗拉/Symbol 3090和3190Ouch我希望IPhone或android回答:)提供摩托罗拉仿真器。我会尝试使用其中一个将exe文件放在仿真器上,然后在那里检查。不确定tbh。“Ouch”不是它的一半。依赖项Walker解析PE头(在CE和Win32上相同)并尝试在本地计算机上查找DLL。CE中只有一级依赖项是正确的(如本文所述)。如果您可以自己构建操作系统映像(WM设备除外)您可以将exe移动到所有.exe和.DLL所在的文件夹中,并进行更完整的检查。您无法从正在运行的设备中提取系统DLL,而且它们通常是隐藏的(这就是为什么它们在资源管理器中变灰的原因)。