Visual Studio #ifdef #elif用于产品ID

时间:2017-09-03 18:58:27

标签: visual-studio syntax syntax-error directive

所以我正在为多种产品使用1种解决方案,我需要制作某种“产品ID系统”,以便我知道人们正在使用哪种产品。

是我的尝试:

    #ifdef _WIN64
            #if defined(_DEBUG)
                    #if defined(PFW_APP_D3D_TEST)
                        #define PFW_PRODUCT_ID 1
                    #elif defined(PFW_APP_LOADER)
                        #define PFW_PRODUCT_ID 24
                    #endif
            #else
                    #if defined(PFW_APP_D3D_TEST)
                        #define PFW_PRODUCT_ID 25
                    #elif defined(PFW_APP_LOADER)
                        #define PFW_PRODUCT_ID 48
                        //Then some nested #if here
                    #endif
            #endif
    #else
            #if defined(_DEBUG)
                    #if defined(PFW_APP_D3D_TEST)
                        #define PFW_PRODUCT_ID 49
                    #elif defined(PFW_APP_LOADER)
                        #define PFW_PRODUCT_ID 72
                    #endif

            #else
                    #if defined(PFW_APP_D3D_TEST)
                        #define PFW_PRODUCT_ID 73
                    #elif defined(PFW_APP_LOADER)
                        #define PFW_PRODUCT_ID 96
                    #endif

            #endif
    #endif

但它没有编译D :(不知道如何正确使用这个#system

Proof of error

所以我的问题是,如何修复语法错误,是否有自动生成产品ID的方式?

1 个答案:

答案 0 :(得分:0)

问题已解决......

更改
            #elif defined(PFW_APP_BF1)
                #if defined(PFW_GAME_BF4)
                    #define PFW_PRODUCT_ID 51
                #elif defined(PFW_GAME_BF1)
                    #define PFW_PRODUCT_ID 52

            #elif defined(PFW_APP_BF1)
                #elif defined(PFW_GAME_BF4)
                    #define PFW_PRODUCT_ID 51
                #elif defined(PFW_GAME_BF1)
                    #define PFW_PRODUCT_ID 52

但很遗憾我无法使用#if:D

相关问题