用过的baidu空间,太难用了,还是cnblogs好用
GZ.Jackey
学无止境,博采众长。

最近开始,在使用VC6开发时,喜欢使用写个批处理来进行产品的出厂编译,贴出来,希望对大家有所帮助。

 

windows下vc6工程产品化


目标:

使用一个批处理命令,编译并组织出厂产品。

 

优点:
实现出厂编译自动化。
当工程关联很多或目录结构复杂时可以减少出厂成本和人工的误操作。

实例:
下面是一个make_win32.bat的实例。
----------------------------------------------------------------------------------
:创建目录
rd /S /Q "product""
if errorlevel 1 pause
md "product""
if errorlevel 1 pause
:编译分词java接口dll
:设置环境变量
:当前VC安装路径的路径
call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
if errorlevel 1 pause
:使用msdev进行编译
msdev HLSwknl_java"HLSwknl_java.dsp /MAKE "HLSwknl_java - win32 release" /REBUILD
if errorlevel 1 pause
:拷贝到产品目录下
copy /Y HLSwknl_java"Release"HLSwknl_java.dll "product""
if errorlevel 1 pause
copy /Y sdk"HLSSplit.dll "product""
if errorlevel 1 pause
copy /Y sdk"HLSSplit.dat "product""
if errorlevel 1 pause
xcopy /S "hylanda" "."product"hylanda""
if errorlevel 1 pause
:拷贝到到测试目录
xcopy /S "hylanda" "."JavaTest"hylanda""
if errorlevel 1 pause
copy /Y HLSwknl_java"Release"HLSwknl_java.dll "JavaTest""
if errorlevel 1 pause
copy /Y sdk"HLSSplit.dll "JavaTest""
if errorlevel 1 pause
copy /Y sdk"HLSSplit.dat "JavaTest""
if errorlevel 1 pause
:编译测试文件
javac -cp ./JavaTest/ ./JavaTest/hylanda/segment/*.java
if errorlevel 1 pause
javac -cp ./JavaTest/ ./JavaTest/SegTest/*.java
if errorlevel 1 pause
javac -cp ./JavaTest/ ./JavaTest/SegTest.java
if errorlevel 1 pause
pause
----------------------------------------------------------------------------------
若出现多个编译选项,可以编写Makefile文件
例如Makefile文件编写如下:
win32:
call make32.bat
win64:
call make64.bat

....

 

然后可以通过make win32 或 make win64 命令来执行编译产出,这里使用的小伎俩就是在Makefile文件中
直接call对应的批处理文件,当然,你也可以把批处理中的代码都转移到Makefile文件中,这就随个人喜好啦。

知识不是力量,运用知识才是力量,各位若有更好的方法,欢迎提出!

 

 

----------------------------------------------------------------------------------
附A:MSDEV使用命令:
E:\allworks\javaInterface\seg_32_window>msdev /?
Usage:
  MSDEV [myprj.dsp|mywksp.dsw]  - load project/workspace
        [<filename>]            - load source file
        /?                      - display usage information
        /EX <macroname>         - execute a VBScript macro
        /OUT <filename>         - redirect command line output to a file
        /USEENV                 - ignore tools.options.directories settings
        /MAKE [<target>] [...]  - build specified target(s)
              [<project> - <platform> <configname>]
              [[<project>|ALL] - [DEBUG|RELEASE|ALL]]
              /CLEAN            - delete intermediate files but don't build
              /REBUILD          - clean and build
              /NORECURSE        - don't build dependent projects
----------------------------------------------------------------------------------

----------------------------------------------------------------------------------
附B:DOS下的注释用法
批处理的段注释有一种比较常用的方法
程序代码
goto start
  = 可以是多行文本,
  = 可以包含重定向符号和其他特殊字符
  = 只要不包含 :start 这一行
:start
另外,还有其他各种注释形式,比如:
1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
2、rem 注释内容(不能出现重定向符号和管道符号)
3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
5、:注释内容(注释文本不能与已有标签重名)
6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
8、:标签 注释内容(可以用作标签下方段的执行内容)
----------------------------------------------------------------------------------

 

posted on 2009-03-20 17:53  GZ.Jackey  阅读(378)  评论(0编辑  收藏  举报