wince中loadcepc.exe的编译经历

/*******************************************************************
**2007年11月21日记录于ccidnet的BLOG, 2010年5月20日因BLOG搬家转移至此
********************************************************************/

 

     这两天想弄个WINCE的启动界面来盖住CE启动时难看的解压过程, 从网上获取资料说可以通过修改loadcepc.exe来解决(也可以用修改这个来隐藏Jumping to xxxxxx的显示), 在编译的过程中我遇到了不知道多少个错误. 现在终于解决了,开心之余将成果与大家分享一下, 也可以解决遇到此问题的朋友一些方便(其实说白了挺简单,只是摸索的过程有些曲折呵,这里只介绍编译的方法,至于你要修改什么,就知道研读一下源码吧)

1. 首先应该下载16位C编译器,比如MSVC1.52, 并安装.(这个版本是VC系列中最后一个16位的编译器,这东西比较难找到,如果您实在在网上找不到,QQ与我联系,若不在线则mail:shaowei808@163.com告知,我可上QQ传给你,直接mail老是失败又麻烦呵)

2.下载MASM6.11(其他的我不保证行,因为我下过5.0的,编译时通不过, 如果你不想有太多麻烦就直接下6.11 吧哈), MASM安装在C:/下,(如果你安装在了其他地方,要注意修改后面文本中的目录)

3.修改loadcepc.mak,这是一个工程文件,由MSVC1.52来执行.在文章的最后我会贴出修改后的文本, 其中红色的部分为修改过的部分.

4.运行MSVC1.52, Project->Open中选择loadcepc.mak文件,并确定

5.产生loadcepc.exe, 点Project->Build LOADCEPC.EXE, 不出意外的话,您已经在loadcepc目录下产生了一个新的loadcepc.exe.

修改过的loadcepc.mak的文本如下(红色的部分为修改部分,请确定该路径与您软件的路径一致):
!if 0
Copyright (c) Microsoft Corporation. All rights reserved.
!endif
!if 0
Use of this source code is subject to the terms of the Microsoft end-user
license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
If you did not accept the terms of the EULA, you are not authorized to use
this source code. For a copy of the EULA, please see the LICENSE.RTF on your
install media.
!endif
#
#
# Microsoft Visual C++ generated build script - Do not modify

PROJ = LOADCEPC
DEBUG = 0
PROGTYPE = 6
CALLER =
ARGS =
DLLS =
D_RCDEFINES = -d_DEBUG
R_RCDEFINES = -dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
USEMFC = 0
CC = cl
CPP = cl
CXX = cl
CCREATEPCHFLAG =
CPPCREATEPCHFLAG =
CUSEPCHFLAG =
CPPUSEPCHFLAG =
FIRSTC = MAIN.C

path = C:/MASM611/BIN;C:/WINCE500/SDK/BIN/I386/X86
FIRSTCPP =
RC = rc
CFLAGS_D_DEXE = /I . /nologo /G2 /W4 /Z7 /Od /D "_DEBUG" /D "_DOS" /D "CEDDK_USEDDKMACRO" /Fc /FR
CFLAGS_R_DEXE = /I . /nologo /Gs /G2 /W4 /Z7 /Ox /D "NDEBUG" /D "_DOS" /D "CEDDK_USEDDKMACRO" /Fc /FR
LFLAGS_D_DEXE = /NOLOGO /NOI /STACK:5120 /ONERROR:NOEXE /CO /MAP /LINE
LFLAGS_R_DEXE = /NOLOGO /NOI /STACK:5120 /ONERROR:NOEXE /CO /MAP /LINE
LIBS_D_DEXE = slibce oldnames
LIBS_R_DEXE = slibce oldnames
RCFLAGS = /nologo
RESFLAGS = /nologo
RUNFLAGS =
LIBS_EXT =
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS_D_DEXE)
LFLAGS = $(LFLAGS_D_DEXE)
LIBS = $(LIBS_D_DEXE)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
!else
CFLAGS = $(CFLAGS_R_DEXE)
LFLAGS = $(LFLAGS_R_DEXE)
LIBS = $(LIBS_R_DEXE)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
!endif
CFLAGS = $(CFLAGS) /I ../../INC
!if [if exist MSVC.BND del MSVC.BND]
!endif
SBRS = MAIN.SBR /
      XMSAPI.SBR /
      VIDEO.SBR /
  PPFS.SBR


TRANSFER_DEP =
MAIN_DEP = loadcepc.h /
  xmsapi.h

XMSAPI_DEP = xmsapi.h

VIDEO_DEP = loadcepc.h /
  video.h

MDPPFS_DEP = wdm.h /
  pc.h


PPFS_DEP = kernel.h

PPFSTOOL_DEP = ppfs.h
ETHMAIN_DEP = loadcepc.h /
  smchw.h

all:   $(PROJ).EXE $(PROJ).BSC
clean:
  del /f /q $(PROJ).exe *.obj *.cod *.sbr

MAIN.OBJ:   MAIN.C $(MAIN_DEP)
  $(CC) $(CFLAGS) $(CCREATEPCHFLAG) /c MAIN.C

XMSAPI.OBJ:   XMSAPI.C $(XMSAPI_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c XMSAPI.C

VIDEO.OBJ:   VIDEO.C $(VIDEO_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c VIDEO.C

MDPPFS.OBJ:   MDPPFS.C $(MDPPFS_DEP)
  $(CC) $(CFLAGS) $(CCREATEPCHFLAG) /c MDPPFS.C

PPFS.OBJ:   PPFS.C $(PPFS_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c PPFS.C

DEBUG.OBJ:   DEBUG.C $(PPFS_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c DEBUG.C

PPFSTOOL.OBJ:   PPFSTOOL.C $(PPFSTOOL_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c PPFSTOOL.C

ETHMAIN.OBJ:   ETHMAIN.C $(ETHMAIN_DEP)
  $(CC) $(CFLAGS) $(CUSEPCHFLAG) /c ETHMAIN.C

TRANSFER.OBJ: TRANSFER.ASM
  C:/MASM611/BIN/masm.exe /c TRANSFER.ASM
$(PROJ).EXE::   MAIN.OBJ XMSAPI.OBJ VIDEO.OBJ MDPPFS.OBJ DEBUG.OBJ PPFS.OBJ PPFSTOOL.OBJ ETHMAIN.OBJ TRANSFER.OBJ $(DEFFILE)
  echo >NUL @<<$(PROJ).CRF
MAIN.OBJ +
XMSAPI.OBJ +
VIDEO.OBJ +
MDPPFS.OBJ +
PPFS.OBJ +
PPFSTOOL.OBJ +
ETHMAIN.OBJ +
TRANSFER +
DEBUG.OBJ
$(PROJ).EXE
$(MAPFILE)
$(LIBS)
$(DEFFILE);
<<

  C:/MASM611/BIN/link.exe $(LFLAGS) @$(PROJ).CRF
run: $(PROJ).EXE
  $(PROJ) $(RUNFLAGS)


$(PROJ).BSc: $(SBRS)
  bscmake @<<
/o$@ $(SBRS)
<<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值