如何使用WM2003二(dll)在Windows移动6.1(WM6.1)设备?(PE-加载程序不能接受的老二进制文件)

StackOverflow https://stackoverflow.com/questions/2210426

嗨!

我有一个旧的插件(作为二进制、dll),用于通过我的应用程序。这是建立对 WM2003.现在它崩溃的程序,如果载入上 Windows移动6.1 (WM5 工作正常, WM6 太)。

源代码,不可用它没有更多支持通过开发。所以我不能重建它 WM6.1.

它是可能的修补或二进制转换允许其在工作上 WM6.1 ?如果是这样,我怎么能这么做?

谢谢你。


编辑: 我发现, 问题是在PE装载机, ,其行为不同于WM6.1(比WM6和早)。

有帮助吗?

解决方案 2

这个问题是罕见的,但一些信息可以找到。

共同的解决方案是重建一个二在VS2008(TCPMP新VS2008建立WM6.1),但这不会帮助,如果你没有的源码。

我已经找到问题的解释和另一个解决方案在cegcc的邮件列表(手臂-退缩-cegcc在Windows移动6.1).在 Windows移动6.1存管理 计划的变化。

这种安排的时隙仍然相当稳定,从 Windows2003年移动Windows移动6.0.然而,释放 Windows移动6.1, ,事情是改变,以减少 DLL 压力和帮助在 设备管理 处理空间。

Windows移动6.1, ,成堆的设备管理不再分配的过程'隙。相反,操作系统使用 老虎59, 在顶部 大记忆的区域, 为设备管理线栈。 ...

与此问题的解决方法是宣布DLL在注册表(以告诉OS不要载在高存储器)。

我不喜欢这个解决办法,因此我试图找到一些补丁的二进制.和找到它:)

这是不真的是一个补丁,这是 UPX - 最终的 Packer 为执行.但是,它解决的问题。DLL,挤满了 UPX 不崩溃的应用和运行的罚款。

其他提示

这是否插件使用MFC或ATL? WinMo的早期版本有不同的ATL的/ MFC版本出炉,所以,除非你部署新的ATL /与应用程序一起MFC库写在工作室MFC或ATL应用程序将无法正常工作,只是因为旧的应用程序将无法在新设备上工作除非您部署的旧MFC / ATL库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top