Folgendes habe ich gemacht:
Einstellungen vorgenommen wie im Buch für VC++7
unter Extras -> Optionen -> Projekte -> VC++ Verzeichnisse
(wie auch du oben anführst)
dann auch unter Projekt ->Einstelungen -> Linker-> Eingabe
zusätzliche abhängigkeiten die Datei tribase.lib bzw tribased.lib unter
release bzw debug Konfiguration
VC++ 7 hat beim erstellen einer MFC Application mit Formview Ansichtsklasse folgende Klassen erschaffen:
CAboutDlg
Cchazon300App
Cchazon300Doc
Cchazon300View
CMainFrame
Meine application heisst "chazon300"
ich versuche nun in Cchazon300App -> InitInstance(void)
die tribase zu initialisieren
Hier der code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
// chazon300.cpp : Definiert das Klassenverhalten für die Anwendung.
//
#include <MMSystem.h>
#include <TriBase.h>
#include "..\\..\\Allgemeines\\InitWindow.h"
#include "..\\..\\Allgemeines\\Direct3DEnum.h"
#include "..\\..\\Allgemeines\\InitDirect3D.h"
#include "stdafx.h"
#include "chazon300.h"
#include "MainFrm.h"
#include "chazon300Doc.h"
#include "chazon300View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cchazon300App
BEGIN_MESSAGE_MAP(Cchazon300App, CWinApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// Dateibasierte Standarddokumentbefehle
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
// Cchazon300App-Erstellung
Cchazon300App::Cchazon300App()
{
// TODO: Hier Code zur Konstruktion einfügen
// Alle wichtigen Initialisierungen in InitInstance positionieren
}
// Das einzige Cchazon300App-Objekt
Cchazon300App theApp;
// Cchazon300App Initialisierung
BOOL Cchazon300App::InitInstance()
{
// InitCommonControls() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest
// die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren
// von visuellen Stilen angibt. Ansonsten treten beim Erstellen von Fenstern Fehler auf.
InitCommonControls();
CWinApp::InitInstance();
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
// OLE-Bibliotheken initialisieren
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Standardinitialisierung
// Wenn Sie diese Features nicht verwenden und die Größe
// der ausführbaren Datei verringern möchten, entfernen Sie
// die nicht erforderlichen Initialisierungsroutinen.
// Ändern Sie den Registrierungsschlüssel unter dem Ihre Einstellungen gespeichert sind.
// TODO: Ändern Sie diese Zeichenfolge entsprechend,
// z.B. zum Namen Ihrer Firma oder Organisation.
SetRegistryKey(_T("Vom lokalen Anwendungs-Assistenten generierte Anwendungen"));
LoadStdProfileSettings(4); // Standard INI-Dateioptionen laden (einschließlich MRU)
// Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
// dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(Cchazon300Doc),
RUNTIME_CLASS(CMainFrame), // Haupt-SDI-Rahmenfenster
RUNTIME_CLASS(Cchazon300View));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
// Befehlszeile parsen, um zu prüfen auf Standardumgebungsbefehle DDE, Datei offen
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Verteilung der in der Befehlszeile angegebenen Befehle. Es wird FALSE zurückgegeben, wenn
// die Anwendung mit /RegServer, /Register, /Unregserver oder /Unregister gestartet wurde.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// Das einzige Fenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// Rufen Sie DragAcceptFiles nur auf, wenn eine Suffix vorhanden ist.
// In einer SDI-Anwendung ist dies nach ProcessShellCommand erforderlich
if(tbInit())
{
}
else
{
}
tbExit();
return TRUE;
}
// CAboutDlg-Dialogfeld für Anwendungsbefehl 'Info'
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialogfelddaten
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
// Implementierung
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// Anwendungsbefehl zum Ausführen des Dialogfelds
void Cchazon300App::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// Cchazon300App Meldungshandler
|
Die zusätzlichen include-dateien brauche ich , da ich das Beispiel des ersten Dreiecks im Buch in einem Picture-Control proggen möchte.
kannst du mir mit diesen Informationen sagen wo der Fehler liegt
Danke schon mal im Voraus
Grusß Chazon