WindowsCE和一般Win32-API之间的不同之处

Description:

       介绍WindowsCE和一般Win32-API之间的不同之处的文章很少,本篇文章就这个话题进行一下总结。
但这个文章并没有就所有的不同之处进行总结。

 1、API函数

ANSI函数通常不支持,你需要自己实现它们。

 键值传递支持的不好,你需要设置自己的键值表。

 Pipe不支持。

 没有当前目录概念,所有路径都是绝对路径。

 缺少许多GDI函数,比如Arc(), Pie()等,还缺少Bitmap函数。

 缺少SetTextAlign()

 FillRect()
句柄(HBRUSH) (COLOR_WINDOW+1) 不能工作。ERROR_INVALID_HANDLE!

 CreateWindow()
许多属性不支持,在MFC中不支持RichText,Edit控件有限制,一些owner-drawn成员不支持。

 WaitForSingleObject()
使用interval,而不使用INFINITE

 GlobalALloc()
在WCE211中不支持。

 SetViewPortOrg()/SetWindowOrg()
没有实现。

 CreateProcess()
很多参数不支持。

 GetModuleHandle()
指向EXE-header的指针不在托管内存中。

 VirtualQuery()
导致访问冲突。

 ToUnicode()
不支持。

 ToAscii()
不支持。

 VkKeyScan()
不支持。

 MapVirtualKeyW()
只有map type 2支持,Map-type 0返回0

 SetCurrentDirectory()/GetCurrentDirectory()
不支持。

 setWindowLong()
设置外形功能在WinCE2.11 (tcl/tk)下不能工作。

 SetParent()
在WinCE2.11 (tcl/tk)下不能工作。

 SetMenu()
不支持。只有menubar支持。

 TerminateProcess()
不支持,见exit().

 GetSystemTime()
毫秒成员返回0.

FindFirstFile()/FindNextFile()
不返回"." 和 ".."

 CreateFile()
PocketPC模拟器上,使用OPEN_EXISTING和不存在的目录却可以创建目录。

ROM文件不能打开。
在ROM中的文件、动态链接库都不能直接打开。

 2、Winsock

 getservbyname()
不支持

 getsockopt()
RCV_BUFSIZE 返回 0 (在某些系统?)

 3、Windows Messages

 非客户端消息一般不支持。

 WM_KEYDOWN
WinCE不能发送这个扫描码。Jornada 720可以发送,但是WinCE 3.0文档中没有说明。

 WM_ENTERSIZEMOVE/WM_EXITSIZEMOVE
不支持。

 WM_GETMINMAXINFO
不支持。

 WM_NCHITTEST
不支持。

 WM_MOUSEACTIVATE
不支持。

 4、C运行库

 C运行库中缺少很多功能。文件描述符I/O(File-descriptor io)和大多数时间(time)函数都缺少。一些字符串(string)函数也缺少。

 WCE211不支持strdup()。

 exit()
在WinCE 2.11下,总是不能中断当前程序,还会导致机器宕机。

 fileno()
返回的是文件HANDLE,不是fd。

 createthread()
不支持。

你可能感兴趣的:(工作,windows,String,文档,mfc,WinCE)