主题:编译通不过

  共有33399人关注过本帖    
帅哥哟,离线,有人找我吗?
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转一下,或者你干脆把你整个工程的所有字符串都改成宽字符的。


  单帖管理 | 引用 | 回复 回到顶部

返回首页

编译通不过

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: