Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]classe non definita

    ciao.
    ho il seguente file : sapDataLoadIteratorApi.h:
    codice:
    #pragma once
    #include "SapDataLoadsIteratorBase.h"
    #include "../ModelImportDefs.h"
    //#include "SapBase.h"
    #include "SAPStructures.h"
    #import "c:\\Programmi\\Computers and Structures\\SAP2000 11\\sap2000.exe"
    
    //class CSapDataLoadsIteratorBase;
    
    class CSapDataLoadIteratorApi :	
    	public CSapDataLoadsIteratorBase
    {
    public:
    	CSapDataLoadIteratorApi();
    	virtual ~CSapDataLoadIteratorApi();	
    	void Initialize(SAP2000::_cSapModelPtr m_pSapModel);
    	void LoadDistributed();
    	void LoadGravity();
    	void LoadConc();
    
    	void Reset();
    	bool ISEofDistributed();
    	bool ISEofGravity();
    	bool ISEofConc();
    
    	bool MoveNextDistributed();
    	bool MoveNextGravity();
    	bool MoveNextConc();
    
    	int GetCount();
    	int GetTypeLoad(int TypeLoad, CString strCoordSys, CString strType);
    	void LoadTagLoadsTemp(tagLoadDataTempLogic* LoadData);
    	void GetLoadData(tagLoadData *& LoadData,tagLoadDataTempLogic* LDTemp, bool bNew, bool bPointA);
    	CString GetStringValueSA(SAFEARRAY* psaBSTR,int nIndex);
    	int GetIntValueSA(SAFEARRAY* psaInt,int nIndex);
    	double GetDecimalValueSA(SAFEARRAY* psaDecimal,int nIndex);
    	int GetBeamLoadDir(CString strDir,CString strCoordSystem);
    	void LoadTagLoadsTempGravity(tagLoadDataTempLogic * loadDataTemp, double * dMultiplierX ,double * dMultiplierY ,double * dMultiplierZ , double * dLength ,double * dArea,double * dUnitWeight,CString *strSection,CString *PointI,CString *PointJ);
    	void LoadTagLoadsTempConc(tagLoadDataTempLogic* tagData);
    
    private:
    	SAP2000::_cSapModelPtr m_pSapModel;
    	int m_nIndex;
    	SAFEARRAY *pSAEmpty ;
    	SAFEARRAY *pSALineName ;
    	SAFEARRAY *pSALoadCAse ;
    	SAFEARRAY *pSATypeForceMoment ;
    	SAFEARRAY *pSACoordSys ;
    	SAFEARRAY *pSADir  ;
    	SAFEARRAY *pSADist1 ;
    	SAFEARRAY *pSADist2 ;
    	SAFEARRAY *pSAVal1 ;
    	SAFEARRAY *pSAVal2 ;
    
    //	Safearray per carichi gravity
    	SAFEARRAY * pSALoadCAseGrav;
    	SAFEARRAY *  pSACoordSysGrav;
    
    	SAFEARRAY *pSAXGrav;
    	SAFEARRAY *pSAYGrav;
    	SAFEARRAY *pSAZGrav;	
    	SAFEARRAY * pSALineNameGrav;
    	long m_nlNumItems;
    	long m_nlNumItemsDist;
    	long m_nlNumItemsConc;
    };
    mi restituisce quest' errore:c:\CMPFRG\CMPIMPORTAPI\SapDataLoadIteratorA pi.h(12): error C2504: 'CSapDataLoadsIteratorBase' : base class undefined
    e non c'è verso di toglierlo , ho provato in tutti i modi :
    1) togliendo e mettendo la definizione della classe:
    codice:
    //class CSapDataLoadsIteratorBase;
    codice:
    class CSapDataLoadsIteratorBase;
    2)commentando il file .cpp


    in debug ricompilando funziona, in release no!
    sarà un bug di vs2003?
    chiedo a voi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    e questi sono i parametri di configurazione:
    /Od /I ".\Allplan\Noi_Header" /I ".\Allplan\Nem_Header" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXEXT" /D "_AFX_NO_AFXCMN_SUPPORT" /D "CMP_IMPORT_API_DLL_EXPORT" /D "_WINDLL" /D "_AFXDLL" /Gm /EHsc /RTC1 /MDd /Yu"stdafx.h" /Fp".\Debug/CmpImportApi.pch" /Fo".\Debug/" /Fd".\Debug/vc70.pdb" /FR".\Debug/" /W3 /nologo /c /ZI

    e linker:
    /OUT:".\Debug/CmpImportApi.dll" /INCREMENTAL /NOLOGO /LIBPATH:".\Allplan\Noi_Libs" /LIBPATH:".\Allplan\Nem_Libs" /DLL /DEF:".\CmpImportApi.def" /TLBOUT:"robotom.tlb" /DEBUG /PDB:".\Debug/CmpImportApi.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:".\Debug/CmpImportApi.lib" /MACHINE:X86

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho provato a fare il clean 8675657 volte,ma mi da sempre quell'errore.
    In debug quando mi da quell'errore basta commentare tutta la classe,compilare , decommentare /compilare e tutto va.
    in release no.
    grazie.

  5. #5
    Originariamente inviato da giuseppe500
    In debug quando mi da quell'errore basta commentare tutta la classe,compilare , decommentare /compilare e tutto va.
    in release no.
    supponi di avere a che fare con migliaia di classi... evidentemente quello che fai non va bene.

    Verifica di avere aggiunto i file corretti al progetto, e che la gerarchia degli include sia appunto gerarchica. Evita il "#pragma once" che è una quasi microsozzata, utilizza piuttosto l'arcinoto ifndef trick.
    Confronta le opzioni di debug con quelle release.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.