Este problema parece muy simple pero no puedo resolverlo sin importar lo que intente ...
Tengo el prototipo en la clase, no hay prototipos duplicados con el mismo nombre ni funciones. Sin embargo, no puede encontrarlo.

Mira estas capturas de pantalla para ver a qué me refiero.

1

Aquí está la clase donde se agregan en el archivo de encabezado ingrese la descripción de la imagen aquí

Aquí es donde trato de usar lo que no tiene todas las funciones y variables emergentes.

enter image description here

Como puede ver en esa imagen, la función RemoveParticle está en la misma área que la función FindTargetEffect pero puede encontrar el RemoveParticle muy bien y FindTargetEffect no.

Si crees que es lo que define ... los comenté y todavía no funciona ingrese la descripción de la imagen aquí

Aquí está la clase de encabezado.

class CParticleEntityManager {
public:
    friend class CParticleEntity;
    friend class CParticleBundle;

    CParticleEntityManager();

        
    int                     AddParticleToTargetBone(const char *name, 
                                                    DWORD targetID, 
                                                    int effectBoneIndex, 
                                                    bool useEffectBoneRotation, 
                                                    D3DXVECTOR3 &offset, 
                                                    bool autoRemove = true,
                                                    /*bool bNonstopPlay = false,*/
                                                    bool continued = false, 
                                                    D3DXMATRIX matContinued = D3DXMATRIX(0.0f, 0.0f, 0.0f, 0.0f,
                                                                                         0.0f, 0.0f, 0.0f, 0.0f,
                                                                                         0.0f, 0.0f, 0.0f, 0.0f,
                                                                                         0.0f, 0.0f, 0.0f, 0.0f)/*
#ifdef DEF_XMODEL_BONE_EFFECT_OEN_081125
                                                    , bool bXModel = false
#endif
#ifdef DEF_ADD_PARTICLE_OEN_081211
                                                    , float fDelayTime = -1
#endif
#ifdef DEF_BUG_PARTICLE_OEN_090310
                                                    , int nTargetType = 0
                                                    , bool bOverlap = true
#endif*/
                                                    );

    // Ä«¸Þ¶ó Áß¾Ó¿¡ ÆÄƼŬ °³Ã¼ »ý¼º, Çڵ鰪 ¸®ÅÏ
    int                     AddParticleToCameraCenter(const char *name, bool autoRemove = true);

    // ÁöÁ¤ÇÑ À§Ä¡¿Í ¹æÇâ¿¡ ÆÄƼŬ °³Ã¼ »ý¼º, Çڵ鰪 ¸®ÅÏ
    int                     AddParticle(const char *name, D3DXVECTOR3 &position, D3DXMATRIX &rotation, bool autoRemove = true);

    // ÁöÁ¤ÇÑ À§Ä¡¿¡ ÆÄƼŬ °³Ã¼ »ý¼º, Çڵ鰪 ¸®ÅÏ
    int                     AddParticle(const char *name, D3DXVECTOR3 &position, bool autoRemove = true);

    // ÆÄƼŬ °³Ã¼¸¦ À̵¿
    void                    MoveParticle(int hEntity, D3DXVECTOR3 &position);

    // ÆÄƼŬ °³Ã¼¸¦ À̵¿°ú ȸÀü
    void                    MoveParticle(int hEntity, D3DXVECTOR3 &position, D3DXMATRIX &rotation);

    // ÆÄƼŬ °³Ã¼ »èÁ¦ (immediately °¡ true ¸é ¹Ù·Î »èÁ¦, false ¸é ÇöÀç»ý¼ºµÈ ÆÄƼŬÀÇ ¼ö¸íÀÌ ´ÙÇÒ¶§±îÁö ±â´Ù¸²)
    void                    RemoveParticle(int hEntity, bool immediately);

    /**
     *  ÆÄƼŬ °³Ã¼ ¸®¼Â
     * \date 2008-04-23
     * \author oen
     * \param hEntity ¸®¼Â ¿£Æ¼Æ¼ ÇÚµé
     * \param *replace ÆÄƼŬÀ» º¯°æÇÑ´Ù¸é º¯°æÇÒ ÆÄƼŬ ¸í
     * \param restart_ ¸®¼Â ÈÄ ÆÄƼŬÀ» ´Ù½Ã Ç÷¹ÀÌ ½ÃųÁö À¯¹«
     */
    void                    ResetParticle(int hEntity, const char *replace = NULL, bool restart_ = true);

    /**
     *  ÇØ´ç ÇÚµéÀ» °¡Áø °³Ã¼ÀÇ ºñÀúºíÀ» ¼³Á¤
     * \date 2008-04-23
     * \author oen
     * \param hEntity ÇÚµé
     * \param visible_ true : º¸ÀÓ false : ¾Èº¸ÀÓ
     */
    //void                    SetVisible(int hEntity, bool visible_);

    // ¸ðµç ÆÄƼŬ °³Ã¼ ¸®¼Â (¿¡µðÅÍ¿¡¼­ »ç¿ë)
    void                    ResetAllParticles();       

    // CMyD3DApplication::RenderView ¿¡¼­ È£Ãâ (postRender ´Â ³ªÁß¿¡ µû·Î ·»´õ¸µÃ³¸®°¡ ÇÊ¿äÇÑ °æ¿ì¶§¹®¿¡ (¿¹¸¦ µé¸é ¹è°æÈ­¸éÀ» ¿Ö°îÇÏ´Â È¿°ú)
    HRESULT                 Render(bool postRender);

    // CMyD3DApplication::FrameMove ¿¡¼­ È£Ãâ
    void                    FrameMove(float elapsedTime);

    // ±ÍÂúÀº DX °´Ã¼ º¹±¸ °ü¸® ÇÔ¼öµé :-(
    HRESULT                 InitDeviceObjects(IDirect3DDevice9 *pDevice);
    HRESULT                 RestoreDeviceObjects();
    HRESULT                 InvalidateDeviceObjects();
    HRESULT                 DeleteDeviceObjects();
    
#ifdef _TOOL
    // ÀÌÆåÅ͵éÀ» Á¤¸®ÇÑ´Ù.
    void                    Clear();
#endif

#if defined(DEF_BUG_PARTICLE_OEN_090310) || defined(DEF_EFFECT_OEN_090325)
    /**
     *  µ¿ÀÏÇÑ ID ¿¡ µ¿ÀÏÇÑ ÀÌÆåÅÍ°¡ ºÙ¾î ÀÖ´ÂÁö »ìÇÉ´Ù.
     * \param dwID ãÀ» ID
     * \param strEffectName ãÀ» ÀÌÆåÅÍ ¸í
     * \return ã¾Ò´Ù¸é ÇØ´ç ÀÌÆåÅ͸¦ ¸øã¾Ò´Ù¸é -1
     */
    int                    FindTargetEffect(DWORD dwTargetID, LPCSTR strEffectName);
#endif

    // ¿¡µðÅÍ¿¡¼­ »ç¿ëÇÏ´Â º¯¼öµé
    int                     m_hTestParticle;
    D3DXVECTOR3             m_testParticleOffset;
    bool                    m_showWireFrame;
    bool                    m_freeze;
    bool                    m_fixPosition;
    int                     m_numDrawParticles;

    bool                    m_bTabSelect;               // ù¹ø° ÅÇÀÌ ¼±Åà µÇ¾ú´ÂÁö È®ÀÎ Çϱâ À§ÇÑ º¯¼ö

#ifdef DEF_EFFECT_BOX_ESCAFLOWNE_2006_03_16             // ÀÌÆåÆ®Åø ¿¡¹ÌÅÍ

    BOXVERTEX               m_Vertices[ 8 ];
    BOXINDEX                m_Indices[ 12 ];

    LPDIRECT3DVERTEXBUFFER9 m_pBoxVB;
    LPDIRECT3DINDEXBUFFER9  m_pBoxIB;

    int                     m_nTest;
#endif

    // ÆÄƼŬ °´Ã¼ Á¢±ÙÀ» À§ÇØ Á¢±Ù¿µ¿ª º¯°æ
    CParticleEntity *       GetEntityByHandle(int handle);

private:    
    void                    Init();

    int                     GetNewHandle(); 

    int                     GetSortedDrawEntities(CParticleEntity **drawEntities);

    void                    FlushVertexBuffer(prtShaderStage_t *shader, int vbWriteOffset, int vbWriteSize);


#ifdef DEF_EFFECT_BOX_ESCAFLOWNE_2006_03_16             // ÀÌÆåÆ®Åø ¿¡¹ÌÅÍ
    void                    InitBox();                  // ¹Ú½º ÃʱâÈ­
    void                    RenderBox();                // ¹Ú½º ±×¸®±â
#endif

    CParticleEntity *       m_pEntities[MAX_PARTICLE_ENTITIES];
    CParticleEntity *       m_pEntityList;
    int                     m_numEntities;
    float                   m_fElapsedTime;

    bool                    m_bConfirmDevice;
    bool                    m_bRestoreDevice;
    bool                    m_bSoftware;

    PDIRECT3DDEVICE9        m_pD3DDev;
    PDIRECT3DVERTEXBUFFER9  m_pVertexBuffer;
    PDIRECT3DINDEXBUFFER9   m_pIndexBuffer; 
    PDIRECT3DVERTEXSHADER9  m_pBumpEnvVertexShader;
    PDIRECT3DPIXELSHADER9   m_pBumpEnvPixelShader;
    PDIRECT3DVERTEXSHADER9  m_pHeatHazeMaskVertexShader;
    PDIRECT3DPIXELSHADER9   m_pHeatHazeMaskPixelShader;
    CTexture *              m_pHeatHazeTexture;
};

extern CParticleEntityManager   g_particleEntityManager;
1
SSpoke 23 ene. 2021 a las 12:08

1 respuesta

La mejor respuesta

Problema resuelto ... Tenía exactamente el mismo archivo de encabezado en una subcarpeta.

effect\Effect_Sprite

Y también lo tenía en la raíz del proyecto.

Y la raíz de los encabezados del proyecto estaba desactualizada.

0
SSpoke 2 feb. 2021 a las 23:19