如何在VC中编译代码时,通过传入宏开关值得到不同的软件版本?

解决方案 »

  1.   

    直接在C/C++那里设置啊
    命令行开关是 /D"宏名字"
      

  2.   

    VC7用Build\Configuration Manager, VC6用Build\Configurations新建一个Project Configuration。可以从现有的配置中拷贝,然后加入你定义的宏。这样每一个Project configuration的build就是一个不同的版本。
      

  3.   

    代码里:#ifdef 宏名字
       ....
       ....
    #else
       ....
       ....
    #endif
      

  4.   

    你以在 工程.rc 文件中使用预处理#ifdef Version1_0VS_VERSION_INFO VERSIONINFO
     FILEVERSION 1,0,0,1
     PRODUCTVERSION 1,0,0,1
     FILEFLAGSMASK 0x3fL
    #ifdef _DEBUG
     FILEFLAGS 0x1L
    #else
     FILEFLAGS 0x0L
    #endif
     FILEOS 0x4L
     FILETYPE 0x1L
     FILESUBTYPE 0x0L
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "080404B0"
            BEGIN
                VALUE "CompanyName", "\0"
                VALUE "FileDescription", "TST Microsoft 基础类应用程序\0"
                VALUE "FileVersion", "1, 0, 0, 1\0"
                VALUE "InternalName", "TST\0"
                VALUE "LegalCopyright", "版权所有 (C) 2005\0"
                VALUE "LegalTrades", "\0"
                VALUE "OriginalFilename", "TST.EXE\0"
                VALUE "ProductName", "TST 应用程序\0"
                VALUE "ProductVersion", "1, 0, 0, 1\0"
            END
        END
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x804, 1200
        END
    END#else
      ...
    #endif