BCB vs MVC++ ????



  • Hi,

    Ich habe da ein Problem mit einer Klasse, die in MVC++ 6 erstellt wurde.
    Ich benötige sie nun in meinem Projekt das ich in BCB 6 erstelle.

    Leider bekomme ich nur Fehlermeldungen, wenn ich die .h einlese.
    Die Probleme entstehen bei der StdAfx.h Klasse.

    Er findet nahezu keine einzige .h Datei darin.

    Sie sieht so aus:

    #if !defined(AFX_STDAFX_H__F8258E69_02C6_41F6_B6D5_28E87F57DD2A__INCLUDED_)
    #define AFX_STDAFX_H__F8258E69_02C6_41F6_B6D5_28E87F57DD2A__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    #define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
    
    #include <afxwin.h>         // MFC core and standard components
    #include <afxext.h>         // MFC extensions
    #include <afxdisp.h>        // MFC Automation classes
    #include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common Controls
    #ifndef _AFX_NO_AFXCMN_SUPPORT
    #include <afxcmn.h>			// MFC support for Windows Common Controls
    #endif // _AFX_NO_AFXCMN_SUPPORT
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
    
    #endif // !defined(AFX_STDAFX_H__F8258E69_02C6_41F6_B6D5_28E87F57DD2A__INCLUDED_)
    

    Ich bin leider eher neu im C++ Bereich und versteh das nicht ganz.
    Scheint als könnte ich eine in C++ programmierte Klasse nicht benutzen, da BCB und MVC unterschiede haben.

    Gibts da eine Möglichkeit sie trotzdem zum laufen zu bringen?

    mfg b-star



  • Die Klasse ist nicht in (Standard)C++ programmiert, sondern mit der MFC-Bibliothek von Microsoft (einer Art VCL für Arme, ganz Arme).
    Mit dem BCB lassen sich zwar auch MFC-Programme erstellen; ob und wie sich MFC-Klassen in VCL-Projekten verwenden lassen kann ich dir allerdings nicht sagen, da ich mich nie ernsthaft mit der MFC beschäftigt habe (mir ist dabei immer gleich schlecht geworden ;)).



  • Hallo

    ich kenne mich mit der MFC auch nicht aus, aber man kann ja mit dem MFC-Experten (Datei/Neu../Neu/MFC-Experte) ja ein MFC-kompatibles Projekt erstellen, wo du deine Klasse reinkopieren kannst.
    Ich würde dir aber empfehlen, die Klasse selber zu konvertieren, damit sie mit der VCL funktioniert. Oder, wenn es geht, nur mit Standard-C++.

    bis bald
    akari



  • Jansen schrieb:

    Die Klasse ist nicht in (Standard)C++ programmiert, sondern mit der MFC-Bibliothek von Microsoft (einer Art VCL für Arme, ganz Arme).

    Hast Du mal eine Spende für mich, Jansen, 😃 muß mich leider notgedrungen mit der Armen-Bibliothek herumschlagen, Firma wills so. 🙄

    Aber ernsthaft: Ich habe das mal probiert, MFC und VCL- Klassen in einen Projekt zu verwenden, und bin dabei gescheitert, es müssen einfach zuviele Anpassungen vorgenommen werden.



  • Gut, danke für die Antworten.

    Dann muss ich wohl die schöne Klasse nochmal neu machen.
    Naja, was solls. 😞



  • Aber die MFC sollte man doch auch mit dem BCB verwenden können, oder???
    Mein Vater ist VC++ Fanatiker und erzählt mir immer von den Vorteilen von MFC.
    Ich find den BCB trotzdem besser.



  • Gast#649237 😉 schrieb:

    Mein Vater ist VC++ Fanatiker und erzählt mir immer von den Vorteilen von MFC.
    Ich find den BCB trotzdem besser.

    Dein Vater sollte mal mit der VCL richtig programmieren, um die Vorteile der VCL kennenzulernen.
    Ich kenne beide Klassenbibliotheken sehr gut (die MFC hab ich nicht nur "überflogen") und kann dazu nur sagen, das die VCL eindeutig leistungsfähiger und einfach zu handhaben ist. Man kann sich auf das eigentliche Problem viel besser konzentrieren.

    Die "MFC-Fanatiker" argumentieren dabei gerne, das sie bis auf die Windows-Ebene herab auf alles Zugriff haben, aber das geht mit der VCL ebenso. Ist also kein Argument.

    Aber ein Vorteil hat die MFC. Man "muß" teilweise bis auf die Windowsebene herab programmieren (z.B. zum Ändern der Hintergrundfarbe eines Controls: Messagehandler erstellen) und lernt dabei eine ganze Menge Hintergrundwissen über das Windowssystem.
    In diesem Sinne 😉


Anmelden zum Antworten