1

我想问一下,有没有什么办法可以让Windows XP程序在Windows CE下运行?我在 Windows Xp 中编译了一些 DLL,但它们拒绝在 WIndows CE 中加载。那么进行这样的转换是否是一个真正的大问题,或者可能有一些解决方案?我搜索了互联网,他们都在谈论将 Windows CE 转换为普通 Windows。有没有人遇到过这个问题?

根据评论对我的问题进行了一些更新:实际上我有一个非常大的开源项目,并且我尝试在 Windows CE 下编译它,有很多编译错误,所以改变那个开源程序也很难做到吗?

有这样的问题: 某些 Windows API 函数参数中的类型不匹配。系统中不存在某些头文件。__asm 关键字给出错误。声明为 dllimport 函数的函数也给出错误 这不是所有错误

4

2 回答 2

1

嗯,你需要知道 CE 运行在 ARM、SH4、X86 和(不记得第 4 代)处理器上的事实。所以很明显,一个 X86 编译的 Dll 不能在任何 Windows CE 设备上工作。

此外,Windows CE 不支持整个 Win32 API,因此您将面临问题。

最后,我不熟悉 Desktop Dll 及其加载和使用架构,但根据您收到的评论,我猜您也会在那里遇到问题。

于 2010-02-01T16:16:29.010 回答
1

听起来您尝试移植的这个库使用内联汇编。只有 x86 编译器支持它(CE 附带的编译器),所以那里有一个巨大的障碍。如果你想让它在像 WinMo 这样的东西上工作,你将不得不删除所有这些,让它们调用外部 ASM 文件,然后将 x86 ASM 移植到 ARM ASM。工作量不小。

此外,如果它使用内联 ASM,它可能会出于性能考虑这样做,这意味着您尝试移植的任何内容都可能计算量很大。您知道 CE 通常运行在并非真正适合该功能的处理器上吗?

其余的错误可能是由于 CE 仅支持 Win32 的一个子集(如果它具有完整的东西,它将被称为 Widows XP)。您必须为丢失的电话寻找替代品。同样,这不是微不足道的。

于 2010-02-01T18:38:55.397 回答