*.TLB



  • Hi ,

    da gibt es ein Com Objekt das sich auch nicht verändert hat, es
    erzeugt bei der Kompilierung seine type infos in einem Verzeichnis
    je nach Debug/Release Einstellung.

    Beide versionen der *.tlb sind erwartungsgemäß identisch.

    An einer relativ anderen Position importiert ein Projekt
    jenes *.tlb file um nun mit dessen typeinformationen
    variablen zu verwenden :

    #ifdef _DEBUG
    #import "..\..\..\Common\gfx\Debug\gfx.tlb" no_namespace
    #else
    #import "..\..\..\Common\gfx\Release\gfx.tlb" no_namespace
    #endif
    
    class CGfxObject
    {
      public:
    	  IGfxFramePtr m_pGfx;
    
    	  CGfxObject()
    	  {
    		  m_pGfx = IGfxFramePtr( __uuidof(GfxFrame) );
    	  }
    };
    

    Leider klappt das seit neuestem nur noch im Debug -modus obschon
    die Release Version sich Dateiseitig(*.tlb) nicht unterscheidet.

    In der Fehleranzeige nach der Kompilierung findet sich dann:

    IntelliSense: cannot open source file "Y:/PacT/Project/PacPis/VFilterCam/Release/gfx.tlh"

    Das reine Import sollte doch *.tli und *.tlh im outputfolder
    erzeugen nach einem #import.. Das passierte aber nicht.

    Warum ist unerklärlich ?

    (der Fehler kommt vor seitdem ich den Schalter /MP großflächig aktivierte ?)

    Nachtrag: eine deaktivierung von /MP beseitigt den Fehler .

    "seltsam aber so steht es geschrieben"

    gruß
    Karsten


Anmelden zum Antworten