客户提出需求,在点击触摸屏和按按键的时候不采用微软默认的声音,而是采用他们的,为了修改方便,我把\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\WAVEUI的文件夹移植到BSP的驱动目录下,新建WAVEAPI驱动文件夹,其中包括dll和WAVEUI(这个是生成lib的)
1.WAVEUI下的sources文件内容:
TARGETNAME=waveui
TARGETTYPE=LIBRARY
SOURCES=waveui.c waveui.rc
#-------------------------------------------------------------------------------
# Change the _COMMON to _PROJECT if replacing this component from a project.
#-------------------------------------------------------------------------------
#WINCETARGETFILES=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\waveapi.res-------修改前
WINCETARGETFILES=$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\waveapi.res---------修改后
2.WAVEUI下的makefile.inc文件内容:
# $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\waveapi.res:$(_OBJDIR)\$(TARGETNAME).res---------修改后
# copy $? $@ -----------修改前
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\waveapi.res:$(_OBJDIR)\$(TARGETNAME).res
copy $? $@
3.dll下的sources文件
TARGETNAME=waveapi
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
SYNCHRONIZE_DRAIN=1
TARGETDEFNAME=waveapi-------新增
DEFFILE=$(TARGETDEFNAME).def---------新增
DLLENTRY=_DllMainCRTStartup
SOURCELIBS=\
$(_PUBLICROOT)\common\ohttp://blog.csdn.net/androidfan/article/details/5804662ak\lib\$(_CPUINDPATH)\wapiwave.lib \
$(_PUBLICROOT)\common\oak\lib\$(_CPUINDPATH)\wapimap.lib \
# $(_PUBLICROOT)\common\oak\lib\$(_CPUINDPATH)\waveui.lib--------修改前
$(_TARGETPLATROOT)\lib\$(_CPUDEPPATH)\waveui.lib-------------修改后
TARGETLIBS=\
$(_SYSGENSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\audevman.lib \
$(_PUBLICROOT)\common\oak\lib\$(_CPUINDPATH)\wapistub.lib \
# $(_PUBLICROOT)\common\oak\lib\$(_CPUINDPATH)\0409\waveapi.res------------修改前
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\waveapi.res--------修改后
SOURCES=
我单独编译waveapi文件夹 ,生成对应的waveapi.dll就是我修改过的,但如果编译整个BSP,却还微软的,麻烦大家帮忙分析下原因 ,我想做到编译整个BSP后生成的waveapi.dll也是我改过的,谢谢 了。
参考链接《如何修改点击触摸屏的默认声音》:http://blog.csdn.net/androidfan/article/details/5804662
------解决思路----------------------
dir文件有加入WAVEUI吗?
实在不行你就编译后把dll放到FILES文件夹,可以考虑dll名字改成别的,然后bsp定义一个宏,然后在platform.bib中重命名拷贝覆盖。不需要替换默认声音就把宏关闭就行。
------解决思路----------------------
以前都是手工复制的,如何自动实现没有试过。以下是步骤,供参考:
要编译public目录下的文件或者功能模块,主要完成以下几个步骤:
第一步,修改相应文件;
第二步,使用build –cd命令编译该模块;
第三步,在BSP目录下建立目录,用于创建lib/dll/exe目标文件;
第四步,在前述创建的目录下,创建两个文件:makefile和SOURCES。文件makefile.def可以从其他目录copy,因为该文件与其他目录的文件是相同的;文件SOURCES的内容,请按照build.log文件中对该模块的描述填写;
第五步,使用build –cd命令编译该模块;
第六步,将第五步编译生成的文件copy到该文件的目标目录中。
第七步,使用PB中Build OS->Sysgen编译生成bin文件;或者使用lobster.bat进行编译。