Ich weiss dumme frage aber wie Erstell ich in Borland Builder 6 ne Win32 Api
-
jaja ich weiss hoert sich voll dumm an wenn ich sowat net weiss... aber ich habe jetzt nen halbes jahr nur unter console wizard programmiert und ich habe keine ahnung wie ich nun ne win32 api erstelle..... reicht das schon wenn ich auf "Application" klicke?
-
Wenn Du damit meinst Datei->Neu->Anwendung: Ja.
-
jo muss ne, ich habs alles uf english o_O, aber mich verwirrt das alles da nen bissel, mit tForm und so ne... was bedeutet das alles da was da schon steht?
-
Das ist die Grundstruktor des VCL-Framework.
Es wird praktisch bereits eine lauffähige Anwendung mit bereits einem Fenster (Form1) erstellt. Kapselt die WinAPI, so dass Du diese praktisch nicht direkt einsetzen mußt.
-
Das ist aber nicht das, was du willst. Im BCB6 kenne ich mich allerdings nicht so aus. Gibt's da keinen Konsolenexperten mehr?
-
Hallo
Bevor du mit der VCL und Windows-GUI anfängst, solltest du unbedingt die C++ Grundlagen über Pointer und Klassen verstanden haben.
bis bald
akari
-
hmm... also habe ich da nun irgendwie 3 datein oder? oder wie mans auch sonst nennt.... ne *c++, *h und dann steht da noch diagramm... nun habe ich es mal versucht alles was da steht zu loeschen um des hier rein zu schreiben
#define SCRIPT #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Mein erstes Fenster"; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ) { HWND hWnd; MSG msg; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor( 0, IDC_ARROW ); wc.hIcon = LoadIcon( 0, IDI_APPLICATION ); wc.hbrBackground = (HBRUSH) GetStockObject( WHITE_BRUSH ); RegisterClass( &wc ); hWnd = CreateWindow( szAppName, "Titelleiste", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); ShowWindow( hWnd, SW_SHOW ); UpdateWindow( hWnd ); return 0; }dann kommt aber vom linker ne warnung
[Linker Error] Unresolved external '_Form1' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJ [Linker Error] Unresolved external 'TForm1::' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJalso kann mans wohl doch nicht einfach raus loeschen oder???
-
Wenn du WinAPI verwenden willst, mußt du schon den Konsolenexperten nutzen.
-
hae? also weiter unter "Console Wizard" programmieren oder wie? aber dann meckert der das main() fehlt... muss ich dann irgendwas am linker bzw compiler veraendern???
-
Du solltest dir doch erstmal über 3 Dinge klar werden:
Was ist eine Konsolenanwendung?
Was ist eine Windowsanwendung?
Was ist eine Windowsanwendung mit der VCL?Dann erst programmieren!
Wozu hast du den C++Builder, wenn du eine reine Windowsanwendung erstellen willst??Lernzwecke??
-
ich weiss... das man konsolen- und win- anwendungen von ein ander trennen sollte... wie sollte ich den den begriff konsolenanwendung definieren??? eine anwendung die ihm aufgetragene arbeit abarbeiten soll ????
VCL = Visual Component Libary fuer Win32 basierende Programmierung, fuer C/c++/ delphi ... um den ganzen kram mit linux kompatibel zu machen muss amn CLX verwenden.
das war glaube ich nicht die antwort auf meine frage oder?
-
Wahrscheinlich, weil du sie eh nicht verstehen würdest...
-
wieso versucht ihr mir dann nicht einfach zu helfen??? mehr also fragen und antworten kann man doch nicht???!!
-
jaja ich weiss hoert sich voll dumm an wenn ich sowat net weiss... aber ich habe jetzt nen halbes jahr nur unter console wizard programmiert und ich habe keine ahnung wie ich nun ne win32 api erstelle..... reicht das schon wenn ich auf "Application" klicke?auch eine Konsolenanwendung kann eine WIN 32 API-Anwendung sein. Kommt immer darauf an, was du benutzt.
Dir wurde doch schon die Antwort gegeben, leider kannst du kein Englisch. Also wo anfangen??
Vielleicht so
Willst du eine Anwendung mit schwarzem Fenster oder mit einem Window-Fenster?
Bei letzterem:
Willst du NUR auf die WIN 32 API zurückgreifen oder willst du dazu die VCL benutzen??hmm... also habe ich da nun irgendwie 3 datein oder? oder wie mans auch sonst nennt.... ne *c++, *h und dann steht da noch diagramm... nun habe ich es mal versucht alles was da steht zu loeschen um des hier rein zu schreiben
ein sinnvolles Vorgehen-> schließlich hat sich dabei jemand was gedacht?
-
T0bi schrieb:
hae? also weiter unter "Console Wizard" programmieren oder wie?
Das hatte ich dir oben schon indirekt erzählt!
-
ähmmm naja etwas englisch kann ich schon ich bin momentan abiturient der 12klasse und ich glaube nach 7jahren englisch kann ich es doch schon einbisschen auch wenn ich 4stehe *g* zu tendenz zur 3 , muahahaha.. naja blödsinn bei seite.
also wenn ich das nun richtig verstanden habe ist die VCl ne libary von Borland zur ~ vereinfachten ~ programmierung von Win Api's dem zufolge denke ich das ich lieber mit VCl programmiere auch wenn ich das nicht in meinem Bsp getan habe...., verstehe ich das dann richtig das in der VCL funktionen enthalten sind, die man sonst auf anderen entwicklungsumgebungen mit ewig langen handle beschreiben muss ????
-
Bravo, ja, der erste Schritt der Erkenntnis.
Nun im Deutschen heisst es wie gesagt,
Datei-> Neu-> Anwendung
Das sollte auch in English noch irgendwie nachzuvollziehen sein.
Die Dateien die dann kommen werden diesmal nicht verändert, sondern du drückst einfach erstmal auf "Ausführen" und solltest nach Speicherung (das 1. Mal wird gefragt worunter du die CPP Datei speichern willst; das 2. Mal worunter du das Projekt speichern willst) ein ablauffähiges Fenster haben, dass du in der Größe ändern kannst, verschieben kannst, welches auf das Schließen reagiert.
DANN geht es weiter. Dann kannst du Buttons hinzunehmen oder etwas anderes, welches im KOPONENTENFENSTER zu sehen ist. Im Fenster des OBJEKTINSPEKTORS kannst du dann die Eigenschaften dieser Komponenten verändern.
Irgendwo gab es mal ein Tutorial dazu.
-
also irgendwie schreibt ihr alle was anderes, erst sagt mir jemand das es auch in Consolen Wizard geht... und dann gehts doch nur in
File -> New -> Application :D...aber mir faellt gerade mal auf das ich glaube doch das andere im sinn hatte also nur auf die WIN32 API zugreifen also das ich alles alleine schreibe in den quelltext und nicht mit der maus "zeichne" wo auf der form ne scrollbar hin soll ... ich willl einfach nur das hier erst mal zum laufen bringen:
#define SCRIPT #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Mein erstes Fenster"; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ) { HWND hWnd; MSG msg; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor( 0, IDC_ARROW ); wc.hIcon = LoadIcon( 0, IDI_APPLICATION ); wc.hbrBackground = (HBRUSH) GetStockObject( WHITE_BRUSH ); RegisterClass( &wc ); hWnd = CreateWindow( szAppName, "Titelleiste", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); ShowWindow( hWnd, SW_SHOW ); UpdateWindow( hWnd ); return 0; }ich glaub ich muss mich erst mal an der stelle fuer eure geduld mit mir bedanken gg... THAANX
-
OK, ein für alle mal:
Windows App mit VCL: File -> New -> Application
Windows App ohne VCL (wo man alles selber macht): Konsolenexperte
-
AHHHHH, hehe super jetz hat er's.... doch habe ich ja shcon geschriben. ich habe diesen quelltext versucht zu compilieren aber
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|crtlvcl [Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|crtlvcl [Linker Error] Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\C0X32.OBJ [Linker Error] Unresolved external '__BeforeDestruction' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__fastcall System::AnsiString::~AnsiString()' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__ClassDestroy' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__ClassCreate' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__fastcall System::AnsiString::AnsiString(const System::AnsiString&)' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__AfterConstruction' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xx [Linker Error] Unresolved external '__fastcall System::AnsiString::AnsiString(const char *)' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\CP32MT.LIB|xxwenn ich die VCL dann hier im Console Wizard doch einbinde was doch dann eigentlich net nötig ist oder? kommt trotzdem noch:
[Linker Error] Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\C0X32.OBJund da meine frage vorin... muss ich dann irgendwas in den linker einstellungen veraendern? und wenn ja, was???