VC6(Win32)转VS2005(WinCE)的问题

山伟 2010-07-28 07:11:55
VC6(Win32)转VS2005(WinCE)的问题。
本人这里有一个VC6开发的Win32程序,现在要移植到WinCE5.0上,存在几个问题。
在VC6下是ACSI编码而VS2005下是UNICODE编码。

#ifdef UNICODE
#define FindFirstFileEx FindFirstFileExW
#else
#define FindFirstFileEx FindFirstFileExA
#endif // !UNICODE

在程序里有大量这样的函数,本来VC6下都用的是FindFirstFileEx,但现在由于存在宽字节问题,我为了减少代码修改量将FindFirstFileEx直接用FindFirstFileExA来替换,而编译通过,Link的时候出现错误"error LNK2019: unresolved external symbol FindFirstFileA referenced in function "public:。。。",
错误原因:函数只有申明,没有实现时,或是DLL中的东东没有export。 但是FindFirstFileEx函数需要的Lib已经加了还是不行。请问我该如何解决这个错误。

另外如果这种做法不行只能使用FindFirstFileExW来替换FindFirstFileEx 的话,有什么很好的办法能够对修改的代码尽量做到最小
...全文
184 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hongya6088 的回复:]
API函数应该有ANSI和UNICODE两个版本啊?FindFirstFileEx直接就可以使用的。
[/Quote]
WinCE在设计时就没有考虑过支持ANSI,所以在CE下只能用UNICODE版本的API。
其实你不用改API的,VS2005下默认就是UNICODE的,不过要将char之类的改成THCAR。
Eleven 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shanwei355 的回复:]
引用 1 楼 visualeleven 的回复:
FindFirstFileEx函数直接不能用吗?WinCE平台没有Ansi的版本


我顶楼的那段代码是 winbase.h 的内容。直接使用FindFirstFileEx就会#define成函数FindFirstFileExW,而这个函数所使用的参数类型都 是WCHAR,而程序里都定义的是CHAR。我再想能否有什么简单的方法来进行移植
……
[/Quote]
那就需要将你的char*转成wchar_t*
wltg2001 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shanwei355 的回复:]
上面各位说的我都知道。WinCE只支持UNICODE,但是如果把char都替换成TCHAR然后编译,根据报错进行修改
代码量修改太大了。我现在的问题是能否用其他方法来移植到WinCE上。
[/Quote]
如果在编辑中用替换功能去修改,工作量应该不是很大啊
山伟 2010-07-29
  • 打赏
  • 举报
回复
求方法!简单方法!
山伟 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]
FindFirstFileEx函数直接不能用吗?WinCE平台没有Ansi的版本
[/Quote]

我顶楼的那段代码是 winbase.h 的内容。直接使用FindFirstFileEx就会#define成函数FindFirstFileExW,而这个函数所使用的参数类型都 是WCHAR,而程序里都定义的是CHAR。我再想能否有什么简单的方法来进行移植
山伟 2010-07-29
  • 打赏
  • 举报
回复
上面各位说的我都知道。WinCE只支持UNICODE,但是如果把char都替换成TCHAR然后编译,根据报错进行修改
代码量修改太大了。我现在的问题是能否用其他方法来移植到WinCE上。
stonewater 2010-07-29
  • 打赏
  • 举报
回复
把char都替换成TCHAR然后编译,根据报错进行修改
Jekhn 2010-07-28
  • 打赏
  • 举报
回复
Windows CE不支持Ansi windows函数
zxdlms 2010-07-28
  • 打赏
  • 举报
回复
Wince平台只支持Unicode的API函数的。如果原来的程序注意了Unicode,用了_T宏和TChar还好,如果没有的话,就只能把相关的地方都改了
hongya6088 2010-07-28
  • 打赏
  • 举报
回复
API函数应该有ANSI和UNICODE两个版本啊?FindFirstFileEx直接就可以使用的。
Eleven 2010-07-28
  • 打赏
  • 举报
回复
FindFirstFileEx函数直接不能用吗?WinCE平台没有Ansi的版本

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧