Visual Studio #ifdef #elif 用于产品 ID

Visual Studio #ifdef #elif for product id's

所以我对多种产品使用 1 种解决方案,我需要制作某种 'product id system' 这样我就知道人们在使用什么产品。

这是我的尝试:

    #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

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

问题已解决...

更改自

            #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