找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6769|回复: 6

编译WINCE下ACE的问题

[复制链接]
发表于 2008-3-27 20:21:13 | 显示全部楼层 |阅读模式
大家好,新手初来,请多多指教。
之前在windows xp下使用vs2003编译过。
后来对系统未做任何修改, 使用vs2005点击xxx_ce.sln编译, 有10多个projects失败。
config.h内容设置如下:
  1. #define HAS_STANDARD_LIBARY  1
  2. #include "config-win32.h"
复制代码
有10多个projects失败,但我未做处理。
使用vs2005新建了一个c++ win32 控制台 智能设备应用程序;此时不添加ace相关头文件,程序没问题;添加了ace相关头文件后:
1,  编译时有错, 说wince版本太低, 我在系统环境变量中加上了CEVER = 500, 似乎没起作用。config-wince.h中手动加上#define UNDER_CE 500, 编译过程中有很多WARNING说宏重定义, 去掉工程属性中preprocessor中的UNDER_CE, 仍然有重复的宏定义。该问题如何解决?
2, 使用有重定义warning版本的ace库, 向代码中添加 #include <ace/time_value.h> 编译无误。 但是添加 #include <ace/reactor.h>, #include <ace/thread_manager.h> 等头文件就有错, crtWmainStartup中hInstance未定义; 弄了几个小时无解。
这两个问题有依赖性么? 使用vs2005编译wince版本的,需要做什么特殊配置么? 在开发过程中工程该怎么配置?
各位有相同遭遇的么,怎么解决的?
不胜感激:(
 楼主| 发表于 2008-3-28 12:33:47 | 显示全部楼层
怎么无人问津阿?

可能我说的不是很明白, 昨天下班后,回去回想写的。
没人有类似的问题么?

问个简单的吧。 按照ace-install.html中的步骤, 然后安装vs2005, 就能编译出wince下的ace库么?

需要安装platform builder, wince5/wince6 么?
发表于 2008-3-28 18:11:30 | 显示全部楼层
你必须了解wince编程本身。
必须有WINCE的编程环境,简而言之,用PC机编译不出能直接在嵌入式上面运行的程序,指令不同。需要用特定的开发包来做。
 楼主| 发表于 2008-3-28 18:59:52 | 显示全部楼层
确实对wince非常不熟悉。 不过马上要将windows xp上用ace编的程序移植到wince下。

现在安装了vs2005, 直接双击 __ce.sln编译可以得到aced.lib/aced.dll.     然后使用这个库, 利用vs2005创建win32智能设备应用程序。

这样也不行的吗?

我现在碰到这样的情况了, 加入ace相关头文件没什么问题, ace代码就出错,编译没错, 但程序不能运行起来。

这个是我编译步骤中有错, 还是什么情况?
发表于 2008-3-28 20:17:49 | 显示全部楼层
肯定不行,你想啊,嵌入式设备,CPU不是x86这类,编译的代码,跑不了的。
只能用特殊的开发包,编译成对应的格式才能跑。
推荐你找几篇文章看一下为好,不然问题一堆堆。
 楼主| 发表于 2008-3-28 22:36:31 | 显示全部楼层

回复 #5 peakzhang 的帖子

应该是可以的吧?编译的时候__ce.sln中很多选项就指定了目标平台。 而且vs2005中自带了pocket pc/ smart phone的模拟器。 有了这些后就可以直接开发调试, 和真实的嵌入式环境一样。

我以前在xp下使用cygwin编译出了vxworks下的ace库,使用起来没问题的。

从ace-install.html中描述来看, 编译ce下的库和其它win32平台下,方法完全一样吧? 我现在就碰到两个问题:
1, 编译出aced.lib后,包含ace头文件,报错说我ce版本太低,要求3.0以上。我查看了工程文件的preprocessor,定义环境变量cever = 500, 似乎没起作用。不过我用其他方式解决了。
2, 包含头文件没问题后, 使用ace代码就有问题了。编译没错, 但是运行的时候程序不能加载到模拟器中去。

大家以前都没这样的问题么?周围搞ace和wince的人太少,网上相关资料也不多。

当然也可能如你所说,想在xp下编译ace.lib for wince就是不可能。
 楼主| 发表于 2008-3-29 15:47:48 | 显示全部楼层
装了pocket pc sdk2003, windows mobile5 sdk for ppc后, 编译的库仍然报告说wince版本太低。
安装目录下有wce420, wce500, 但环境变量中没有CEVER。

手动在环境变量中添加CEVER后,使用aced.lib, 编写的程序编译没有问题, 运行不起来。 报错0x8007007e,系统提示重新安装vs2005. baidu说系统文件损坏,需要修复文件。

明天修复了如果依然有问题就没辙了。

各位没有在win2000/xp下使用ace编译/开发wince应用程序的经验么?
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-21 20:40 , Processed in 0.015433 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表