我想问一下,有没有办法让Windows XP程序在Windows CE下工作? 我在Windows XP中编译了一些DLL,但是他们拒绝在WIndows CE中加载。 因此,进行这样的转换是一个真正的大问题,还是可能有一些解决方案? 我搜索互联网的所有人都谈论将Windows CE转换为普通的Windows。 有没有人遇到过这个问题?
根据评论我的问题的一些更新: 其实我有一个非常大的开源项目,而我尝试在Windows CE下编译它,有很多编译错误,所以改变开源程序也很难吗?
存在这样的问题:某些Windows API函数参数中的类型不匹配。系统中不存在某些头文件。 __asm关键字会出错。声明为dllimport函数的函数也会出错。这不是所有错误
答案 0 :(得分:1)
嗯,你需要意识到CE运行在ARM,SH4,X86和(不记得第四个)处理器上。显然,X86编译的Dll不能在任何Windows CE设备上运行。
此外,Windows CE不支持整个Win32 API,因此您将面临问题。
最后,我不熟悉Desktop Dll及其加载和使用体系结构,但是根据你收到的评论,我猜你也会遇到问题。
答案 1 :(得分:1)
听起来这个你试图移植的库使用内联汇编。只有x86编译器支持它(CE附带的编译器),所以那里有一个巨大的包版广告。如果你想让它像WinMo一样工作,你将不得不删除所有这些,让它们调用外部ASM文件,然后将x86 ASM移植到ARM ASM。不是很少的工作。
此外,如果它使用内联ASM,它可能是为了性能而这样做,这意味着无论你想要移植的东西可能是计算量很大。您是否知道CE通常运行在那些并非真正适合的处理器上?
其余的错误可能是因为CE只支持Win32的一个子集(如果它有整个东西,它将被称为Widows XP)。你必须找到丢失电话的替代品。同样,这不是微不足道的。