第三部分:移植VS2005环境

安装好SDK后,打开你的VS2005的机器,这时候你会发现VS2005多了你的SDK编译环境。

1、新建项目
VS2005 -> 菜单 -> 文件 -> 新建 -> 项目
弹出对话框,如下图所示 (点击图片放大):


选择 Visual C++
选择 智能设备
选择 win32 智能设备项目
填写名称 CEPlayer
点击确定

2、进入向导,设置平台
如下图所示 (点击图片放大):


选择你已近编译好的平台
>添加 >>全部添加  < 删除 <<全部删除
在这我选择了我的SDK  CE6_EVN
可以看到 指令集是 ARMV4I 的

3、应用程序设置
如下图所示 (点击图片放大):

 


选择windows应用程序
选择空项目
点击完成

4、复制添加文件

C:/WINCE600/PUBLIC/DIRECTX/SDK/SAMPLES/WMP/CEPLAYER
下面的文件复制到你刚才项目目录下
然后在你项目目录下选择PB下面复制来的文件
托到VS2005项目CEPlayer的资源管理器中
如下图所示 (点击图片放大):





编译部分:
(先断掉完善 因为我缺的不只这两个文件,WINCE600/PUBLIC/DIRECTX/SDK/INC 好几个都缺 我先去看看)
就此编译
1>./optionsdlg.cpp(21) : fatal error C1083: Cannot open include file: 'windev.h': No such file or directory
1>./playlistmgr.cpp(21) : fatal error C1083: Cannot open include file: 'windev.h': No such file or directory
发现两个错误
怎么回事呢?察看,原来SDK中并不包含 windev.h。
不管三七二一注释掉再说,看看会发生什么事,呵呵。
接着编译发现错误
1>./optionsdlg.cpp(146) : error C3861: 'WaitForAPIReady': identifier not found
'WaitForAPIReady'查了一下MSDN

Requirements
Header kfuncs.h
Library coredll.dll
Windows Embedded CE Windows Embedded CE 6.0 and later


发现是coredll.dll 的咚咚,哈哈有门。
这就是VC写AP的好处。
我就手动在 PlaylistMgr.h 下面 添加了一行代码
extern "C" {
DWORD WaitForAPIReady (DWORD dwAPISet, DWORD dwTimeout);
}
接着编译

1>./playerwindow.cpp(105) : error C2614: 'CPlayerWindow' : illegal member initialization: 'm_iSkinMargin' is not a base or member
1>./playerwindow.cpp(105) : error C2614: 'CPlayerWindow' : illegal member initialization: 'm_hbmBuffer' is not a base or member
1>./playerwindow.cpp(122) : error C2065: 'm_csButtonInfoCritSec' : undeclared identifier
1>./playerwindow.cpp(2363) : error C2065: 'm_binfoSeekThumb' : undeclared identifier
1>./playerwindow.cpp(2363) : error C2228: left of '.ptPos' must have class/struct/union
1>        type is ''unknown-type''
1>./playerwindow.cpp(2363) : error C2228: left of '.x' must have class/struct/union
1>./playerwindow.cpp(2363) : error C2065: 'm_rcSeekBounds' : undeclared identifier
1>./playerwindow.cpp(2363) : error C2228: left of '.left' must have class/struct/union
1>        type is ''unknown-type''
1>./playerwindow.cpp(2364) : error C2065: 'm_binfo' : undeclared identifier
1>./playerwindow.cpp(2364) : error C2065: 'SKIN_SEEK' : undeclared identifier
1>./playerwindow.cpp(2364) : error C2228: left of '.rc' must have class/struct/union
1>./playerwindow.cpp(3300) : error C2228: left of '.ptPos' must have class/struct/union
1>        type is ''unknown-type''
1>./playerwindow.cpp(3300) : error C2228: left of '.x' must have class/struct/union
1>./playerwindow.cpp(3300) : error C2228: left of '.left' must have class/struct/union
1>        type is ''unknown-type''
1>./playerwindow.cpp(3301) : error C2228: left of '.rc' must have class/struct/union
哇,不少错误,呵呵千万别吓倒,别慌慢慢来,经过查找,原来编译时候没有定义变量 CEPLAYER_SKIN
手动添加
解决方案管理器
选择CEPlayer右键 “属性”
配置属性 -> C/C++ -> 预处理 ->预处理器定义 -> 点击... 添加预处理
如下图所示:


应为这个跟资源文件也有关系,所以另外一个地方也需要添加
配置属性 -> 资源-> 常规 -> 点击... 添加预处理

继续编译
>playerwindow.obj : error LNK2001: 无法解析的外部符号 IID_IQualProp
1>playerwindow.obj : error LNK2001: 无法解析的外部符号 IID_IBasicVideo
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IBasicVideo
1>playerwindow.obj : error LNK2001: 无法解析的外部符号 IID_IAMAudioRendererStats
1>playerwindow.obj : error LNK2001: 无法解析的外部符号 IID_IMediaSeeking
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IMediaSeeking
1>plist.obj : error LNK2001: 无法解析的外部符号 CLSID_FilterGraph
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 CLSID_FilterGraph
1>plist.obj : error LNK2001: 无法解析的外部符号 IID_IGraphBuilder
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IGraphBuilder
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 FORMAT_WaveFormatEx
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IBaseFilter
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IAMSecureMediaContent
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IAMNetShowExProps
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IBasicAudio
1>propertydlg.obj : error LNK2001: 无法解析的外部符号 IID_IAMMediaContent
1>CE6_EVN (ARMV4I)/Debug/CEPlayer.exe : fatal error LNK1120: 12 个无法解析的外部命令

哈哈哈,全是链接错误,怎么会事呢?肯定是缺少链接库了
配置属性 -> 链接器 -> 输入 -> 附加依赖项 -> 点击... 添加依赖项 strmiids.lib
如下图所示(点击图片放大) :



继续编译,OK 跑起来了, 移植到此结束,呵呵!

3.JPG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值