我在C ++中有一个Win32应用程序。
我想要生成的是与WinCE兼容的此应用程序的.exe。我认为改变我的平台会更好。但是当我在智能设备平台上运行代码时,会出现很多错误!更改源代码的最佳方法是什么?
答案 0 :(得分:2)
道路可能简单或非常困难。取决于源代码。很少有人在没有考虑设备的情况下编写的代码只会在没有变化的情况下工作。第一步是将所有代码导入到面向设备SDK的智能设备项目中,并尝试构建它。编译器和链接器将为您提供必须完成的工作的指示。
您可能面临的一些较大的痛点是:
还有很多其他小的“陷阱”,但是对你的代码库一无所知,很难说更多。同样,编译器和链接器将是第一个让您了解自己有多少工作的东西。
答案 1 :(得分:1)
我建议保留win32版本,以便开发和调试代码更容易。在某些Windows设备上,您可能无法在调试器中运行代码。
如果您的应用程序是在没有UNICODE的情况下编译的,那么每次调用需要字符串的API函数时,您都必须将CHAR *字符串转换为WCHAR *字符串。如果您只是将应用程序转换为UNICODE,您将节省大量时间。否则在任何地方都使用TCHAR。
您会发现某些代码需要Windows CE平台的特殊版本和Win32的不同版本。然后你可以使用if-defs:
#if defined(_WIN32_WCE)
/// windows ce code version
#else
/// win32 code version
#endif
如果要移植到Windows CE 5.0,那么请准备好内存限制:每个进程32MB,但实际上比您的代码可用的少。您的设备实际上可以有120 + MB或RAM,访问它可以使用内存映射文件。