主题:编译通不过 共有43586人关注过本帖 |
---|
yy |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-3-22 11:40:00 [显示全部帖子]
SHFILEINFOW没定义,这个结构体在shellapi.h里定义的,根据你是否定义了UNICODE决定到底是该使用SHFILEINFOA还是SHFILEINFOW。
mbctype.h这个头文件CE没有,CE只有ctype.h。 WINCE比windows精简的很多,其中WINCE只支持UNICODE,所以移植的时候ANSI的都要改成UNICODE的,就是char的都要改成WCHAR的,char字符串和WCHAR字符串可以用mbstowcs和wcstombs来转。你两个问题都是这个原因。
|
单帖管理 | 引用 | 回复 |
yy |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-3-22 14:12:00 [显示全部帖子]
把windows上的程序移植到CE上确实不是改改配置就可以的,要改的地方很多的,大部分原因是CE精简了一些重复封装的库函数还有就是UNICODE的问题。被精简掉的库函数可以用其他函数代替,UNICODE的问题一般错误很多,但是并不难改。
你前面很多宽字符串处理函数的错误应该是你的参数没弄对,printf("test");对应wprintf(L"test"); int len = strlen("test");对应int len = wcslen(L"test");宽字符串要记得加L 后面GDI里面TextOut这个函数CE是没有的,这个函数就是把DrawText封装了下,你自己用DrawText重新实现下吧。 const char [6]' to 'LPCTSTR这个错误就是你吧一个窄字符数组直接当宽字符串指针传了,你要先用mbstowcs转一下,或者你干脆把你整个工程的所有字符串都改成宽字符的。 |
单帖管理 | 引用 | 回复 |