PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual C++ - Anfängerproblem


hadez16
2007-04-26, 13:34:24
Hallo

die letzten paar Tage arbeite ich nun mit der Express-Edition von Visual C++ und ich hab ein problem.

Bisher habe ich nur Konsolenprogramme in C++ geschrieben. Nun habe ich einen Code, den ich gerne in eine Anwendung in Visual C++ einbasteln würde.

Also ich habem ein Projekt, mein Form bzw. mein Fenster. Nun will ich, dass mein Code aus dem Konsolenprogramm dann ausgeführt wird, wenn das Fenster geladen wird (Form1_Load).

Mein Code benötigt jedoch gewisse header-dateien


#include <conio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <fstream>


wenn ich jetzt meinen code einfach in die "Form1_Load"-Funktion kopiere, meckert mein Compiler sehr sehr viele sachen. Ich weiß nun nicht wo ich die include-anweisungen dort hinnstecken muss (Form1.h??)

Ich hab sehr schlechte Kentnisse über Windows-Programmierung und vielleicht muss ich es ja ganz anders machen ;)

Oder muss ich in meiner Programm.cpp (vom Visual C++ Projekt) eine Funktion schreiben mit meinem Code und dann in der Form1.h aufrufen?

Über eine Aufklärung wäre ich sehr dankbar

Grüße

MuLuNGuS
2007-04-26, 16:18:44
ja,

was soll es denn nun werden....ein konsolen- oder eine windows-anwendung???
®

in beiden fällen kannst du deinen code wohl am besten in der main() funktion reinbasteln.

in den Form1 code schreibst du eher code der sich direkt auf das Form1 auswirkt, initialisierungen usw.
®

Gauron Kampeck
2007-04-26, 17:11:51
Also wenn du die Express-Edition von VC++ benutzt, benötigst du das Platform SDK von Microsoft. Du solltest es kostenlos auf der MS-Website finden. Für die eigentliche Windows-Programmierung empfehle ich Tutorials aus dem Netz oder die beiliegende Doku.

hadez16
2007-04-26, 19:27:11
ja also brauch ich bspw. mit meinen fstreams usw. in der windows-programmierung garnet anzukommen da dort sowieso alles anders ist?

ich hab mich durch die MSDN gelesen....da wird von StreamRead und File.Open geschrieben

das ist ja wieder alles anders

welche sprache lerne ich überhaupt :uconf2:

TheGamer
2007-04-26, 19:38:19
ja also brauch ich bspw. mit meinen fstreams usw. in der windows-programmierung garnet anzukommen da dort sowieso alles anders ist?

ich hab mich durch die MSDN gelesen....da wird von StreamRead und File.Open geschrieben

das ist ja wieder alles anders

welche sprache lerne ich überhaupt :uconf2:

C/C++ mit Anwendung der WinAPI. Meinst du etwas das überall alles gleich geht

hadez16
2007-04-26, 20:10:31
mmhhh...

wenn ich meinen C++ Code aus meiner Konsolenanwendung in die Main()-Funktion schreibe, öffnet sich beim Starten der Anwendung erst eine Konsole, die meinen Code abarbeitet und wenn das alles beendet ist, startet erst die Fenster-Anwendung selbst.

Mein Ziel ist es (vielleicht geht das ja auch garnicht?), dass ich über die Fenster-Anwendung, wegen mir bei einem Button-Click meinen Code abarbeiten lassen kann

enthalten sind fstreams usw.

krieg ich das nicht unter der (bspw) Form1.h zum laufen?

wenn ich grundsätzlich falsch denke und ich aufhören soll so konfusen kram zu labern, sagt ruhig bescheid :D

TheGamer
2007-04-26, 20:17:11
mmhhh...

wenn ich meinen C++ Code aus meiner Konsolenanwendung in die Main()-Funktion schreibe, öffnet sich beim Starten der Anwendung erst eine Konsole, die meinen Code abarbeitet und wenn das alles beendet ist, startet erst die Fenster-Anwendung selbst.

Mein Ziel ist es (vielleicht geht das ja auch garnicht?), dass ich über die Fenster-Anwendung, wegen mir bei einem Button-Click meinen Code abarbeiten lassen kann

enthalten sind fstreams usw.

krieg ich das nicht unter der (bspw) Form1.h zum laufen?

wenn ich grundsätzlich falsch denke und ich aufhören soll so konfusen kram zu labern, sagt ruhig bescheid :D

Das die KOnsole noch da ist liegt vermutlich daran das du das falsche SUBSYSTEM verwendest (zu ändern in der Compiler setings)

von CONSOLE auf WINDOWS

SgtTynis
2007-04-26, 22:25:10
Da du von Form1.h sprichts, vermute ich mal das du ein Projekt mit .NET Codeanteil erstellt hast. Unter .NET gehen einige Sachen anders (besser) als in der normalen WinAPI.

So nutzt man dort dann auch kein include mehr, sondern using, die Console gibts nicht in der conio.h sonder über System::Console (wenn ich nicht irre)...

...was ich sagen will: du solltest dich erst mal entscheiden ob du klassisches "altes" C++ machen willst unter verwendung der WinAPI oder C++/CLI mit den .NET Bibliotheken...im zweiten Fall würde ich dir allerdings gleich zum wesendlich eleganteren C# raten.

hadez16
2007-04-27, 07:49:23
Da du von Form1.h sprichts, vermute ich mal das du ein Projekt mit .NET Codeanteil erstellt hast. Unter .NET gehen einige Sachen anders (besser) als in der normalen WinAPI.

So nutzt man dort dann auch kein include mehr, sondern using, die Console gibts nicht in der conio.h sonder über System::Console (wenn ich nicht irre)...

...was ich sagen will: du solltest dich erst mal entscheiden ob du klassisches "altes" C++ machen willst unter verwendung der WinAPI oder C++/CLI mit den .NET Bibliotheken...im zweiten Fall würde ich dir allerdings gleich zum wesendlich eleganteren C# raten.

ok jetzt erkenne ich langsam den sachverhalt

dann würde ich sagen klassisches C++ unter Verwendung der WinAPI...

kann ich das dem Visual Studio beibringen dass ich es auf das reduzieren will? Kann man damit noch Anwendungen erstellen die sich auf WinAPI beschränken oder ist da nurnoch überall der .NET kram reingefummelt?

ansonsten, wo gibts gute Infos zur Verwendung von WinAPI? bspw. ne dokumentation von windows.h o.ä.?

danke

MuLuNGuS
2007-04-27, 09:39:11
mir ist jetzt nicht klar wie du es geschafft das nur zu beginn eine konsole aufgeht die sich dann wieder schliesst?!

wie auch immer:
du kannst sowohl im klassischem c++/win32(winapi) sowie in der neuen c++ CLR/CLI konsolen & fensteranwendungen erstellen.

als einsteiger würde ich dir "auch" empfehlen mit c++/win32 zu beginnen oder überhaupt erstmal viel mit c++ konsolenprogrammen herumzuspielen um c++ zu lernen, unter c++/CLI gibt es einige neue "inhalte" die doch schon ziemlich verwirren können.
unter c++/CLI & C# allerdings verhalten sich konsolen/fensteranwendungen eigentlich ziemlich gleich, sprich du kannst auch bei einer fensteranwendung wieder auf konsole umstellen(die konsole geht dann mit auf, der rest der anwendung verhält sich aber weiterhin normal) und diese dann sehr gut als debug-konsole einsetzen.

oder gleich C# lernen, einer sehr elegante geschichte wie ich finde.
®

MuLuNGuS
2007-04-27, 09:44:46
ich kenne die express version nicht aber in der pro sieht's so aus:

winapi:
Visual C++
-win32
-Win32-Konsolenanwendung
-Win32-Projekt

CLR/CLI:
Visual C++
-CLR
-CLR-konsolenanwendung
-Windows Forms-Anwendung(natürlich auch CLR/CLI)



®

hadez16
2007-04-27, 10:13:29
ich kenne die express version nicht aber in der pro sieht's so aus:

winapi:
Visual C++
-win32
-Win32-Konsolenanwendung
-Win32-Projekt

CLR/CLI:
Visual C++
-CLR
-CLR-konsolenanwendung
-Windows Forms-Anwendung(natürlich auch CLR/CLI)



®

also in der express-version steht von WinAPI, wenn ich auf "Neues Projekt" gehe, rein garnichts. Es gibt nur "Windows Forms-Anwendung" und dieses CLR...und natürlich die simple Konsolenanwendung

von WinAPI keine Spur.

TheGamer
2007-04-27, 10:27:19
also in der express-version steht von WinAPI, wenn ich auf "Neues Projekt" gehe, rein garnichts. Es gibt nur "Windows Forms-Anwendung" und dieses CLR...und natürlich die simple Konsolenanwendung

von WinAPI keine Spur.

Ja die Express Version kann das nicht aber es gibt einen Trick....

EDIT: ..... ist ja sogar von MS selbst

http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/

MuLuNGuS
2007-04-27, 11:30:47
also in der express-version steht von WinAPI, wenn ich auf "Neues Projekt" gehe, rein garnichts. Es gibt nur "Windows Forms-Anwendung" und dieses CLR...und natürlich die simple Konsolenanwendung

von WinAPI keine Spur.

von winapi ist da eh nie die rede, war nur als hinweis gedacht.

ansonst hat TheGamer ja geschrieben was du brauchst!
®

Gast
2007-04-27, 13:10:10
Ja die Express Version kann das nicht aber es gibt einen Trick....

EDIT: ..... ist ja sogar von MS selbst

http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/

ok danke! das hab ich jetzt hinnbekommen.

Also das ist dann jedoch so, dass ich nicht per Drag&Drop bspw. Buttons oder Labels in mein Form einfügen kann sondern es quasi über den Code machen muss, oder?

TheGamer
2007-04-27, 13:14:52
ok danke! das hab ich jetzt hinnbekommen.

Also das ist dann jedoch so, dass ich nicht per Drag&Drop bspw. Buttons oder Labels in mein Form einfügen kann sondern es quasi über den Code machen muss, oder?

Nein du kannst schon Dialoge per Drag and Drop "designen" und Menubars erstellen Per Maus. Jedoch alles zusammenzulegen und Messages bzw. Events abzufangen und zu verarbeiten setzt es scon wissen veraus (nichts das man nicht lernen kann).

Du sagtest du warst VB Programmierer. So Einfach wirds dir die rohe WinAPI nicht machen. Bzw VB machts dir so einfach weil die IDE dafür ausgelegt ist. Es gibt auch für die "rohe" WinAPI Wizards und Editoren aber tippen musst du trotzdem einiges.

Evt vlt. doch eine .NET Anwendung?

hadez16
2007-04-27, 14:24:16
Nein du kannst schon Dialoge per Drag and Drop "designen" und Menubars erstellen Per Maus. Jedoch alles zusammenzulegen und Messages bzw. Events abzufangen und zu verarbeiten setzt es scon wissen veraus (nichts das man nicht lernen kann).

Du sagtest du warst VB Programmierer. So Einfach wirds dir die rohe WinAPI nicht machen. Bzw VB machts dir so einfach weil die IDE dafür ausgelegt ist. Es gibt auch für die "rohe" WinAPI Wizards und Editoren aber tippen musst du trotzdem einiges.

Evt vlt. doch eine .NET Anwendung?

huch bei meinem letzten beitrag war ich nicht eingeloggt

ja wo hab ich denn mein Form? Ich sehe mein Fenster nur wenn ich es Ausführe...sonst seh ich nur Quelltext

VB?? nein nein ich war nie VB-Programmierer...wir lernen nun in der Schule C++ und sonst hab ich früher mal Delphi gemacht.

TheGamer
2007-04-27, 14:34:14
huch bei meinem letzten beitrag war ich nicht eingeloggt

ja wo hab ich denn mein Form? Ich sehe mein Fenster nur wenn ich es Ausführe...sonst seh ich nur Quelltext

VB?? nein nein ich war nie VB-Programmierer...wir lernen nun in der Schule C++ und sonst hab ich früher mal Delphi gemacht.

@VB meinte vermutlich jemand anderen aus nem anderen Thread

Füge deinem Projekt mal ein ResourenSet hinzu + einen Dialog, den kannst du dann designen und aus programmieren

Hab mal Schnell nach nem Bild gegoogelt
Das Bild ist war VC++6 aber es zeigt evt was ich meine

http://www.winapi.net/winapi/pics/dialog_vs60_10.gif

hadez16
2007-04-27, 14:53:57
@VB meinte vermutlich jemand anderen aus nem anderen Thread

Füge deinem Projekt mal ein ResourenSet hinzu + einen Dialog, den kannst du dann designen und aus programmieren

Hab mal Schnell nach nem Bild gegoogelt
Das Bild ist war VC++6 aber es zeigt evt was ich meine

http://www.winapi.net/winapi/pics/dialog_vs60_10.gif

also eine ressource...

oah ich blick netmehr durch

wenn ich meine Ressoucen ändern will sagt er, wird in Visual Express nicht unterstützt....den CODE kann ich mir von der Ressource aber anzeigen lassen..

da sieht alles aus wie PASCAL....mit BEGIN und END...:uconf2:

TheGamer
2007-04-27, 14:57:22
also eine ressource...

oah ich blick netmehr durch

wenn ich meine Ressoucen ändern will sagt er, wird in Visual Express nicht unterstützt....den CODE kann ich mir von der Ressource aber anzeigen lassen..

da sieht alles aus wie PASCAL....mit BEGIN und END...:uconf2:

Evt. geht das auch gar nciht mit der Express Version, wir haben hier nur Professional Versionen.

MuLuNGuS
2007-04-27, 20:09:19
wenn du unbedingt win32-api progging lernen willst führt kein weg an diesem buch vorbei:

http://www.amazon.de/Windows-Programmierung-Das-Entwicklerhandbuch-zur-WIN32-API/dp/3860631888

wenn es eine referenz gibt, dann ist es "der" "petzold"!!
®

hadez16
2007-04-27, 22:09:12
wenn du unbedingt win32-api progging lernen willst führt kein weg an diesem buch vorbei:

http://www.amazon.de/Windows-Programmierung-Das-Entwicklerhandbuch-zur-WIN32-API/dp/3860631888

wenn es eine referenz gibt, dann ist es "der" "petzold"!!
®

oh das ist interessant, danke!

aber ich denke um mit dem Buch zu arbeiten benötige ich dann auch eine entsprechende Entwicklungsumgebung um Fenster per Mausklick zusammen zu basteln. Visual Express scheint sich dafür nicht zu eigenen (eben nur für .NET denke ich)

oder wie seht ihr das?

SgtTynis
2007-04-27, 23:38:47
Win32 API zu verstehen ist zwar gut, all zu viel Energie würde ich da allerdings nicht mehr rein investieren, das Ding ist auf lange sicht tot...lieber mit .NET beschäftigen. Man mag über M$ denken was man will, aber im Endeffekt führt in der Windowswelt in Zukunft nichts an .NET vorbei.

Gast
2007-04-30, 14:57:13
oh das ist interessant, danke!

aber ich denke um mit dem Buch zu arbeiten benötige ich dann auch eine entsprechende Entwicklungsumgebung um Fenster per Mausklick zusammen zu basteln. ich habe das Buch mal mit Dev-C++ durchgearbeitet, das bekanntlich keinen visuellen Editor hat. Das ist durchaus möglich, man muß sich nur die Mühe machen, den Resourcenscript-Code der .rc-Files von Hand einzugeben.