Aus einer Access Tabelle lesen
-
estartu_de schrieb:
Andererseits konnte man auch MFC Klassen in einem Konsolenprogramm nutzen, ich weiß aber nicht mehr, wie.
das ist ganz einfach. Du wählst "eine W32 Konsolenanwendung erstellen" aus und im darauffolgenden Assistenten klickst du einfach "Eine Anwendung die MFC Klassen unterstützt" an.
Jetzt kannst du die MFC Klassen benutzten.
Das Dialogfeld lässt sich vieleicht mitthis->EnableWindow(SW_HIDE);
verstecken. "this" gibt glaub ich nen Zeiger auf das aktuelle Fenster zurück (welches ja deine kleine Konsolenanwendung ist). Und EnableWindow() ist zum anzeigen der Fenster da. Probiers mal aus, so ganz sicher bin ich mir nicht.
gruß Chris++
-
Bin mal gespannt ob das funzt. Denn diese EnableWindow() funktion ist eine Funktion von CWindow (und ob eine Konsolenanwendung unter CWindow fällt weis ich nicht). Aber es gibt noch eine andere (schmutzige) lösung.
Du schreibst eine Kons.Anwendung mit MFC Klassen die wiederum in der main() oder InitInstance() mit
shellExecute(........)
dein Hauptprogramm aufruft. ShellExecute() hat glaub ich einen Parameter bei dem man die Anwendung versteckt oder minimiert starten kann (einfach mal in der Msdn nachlesen). Und nachdem ShellExecute ausgeführt wurde beendet sich dieses "Aufrufprogramm" wieder.
-
Da er den Dialog nicht braucht, kann er ihn doch löschen.
Wozu muss man den unnötigen Ballast mitschleppen und auch noch einen "Kopfstand" machen, damit man nicht sieht, dass da ein Fenster ist?
Einfach das DoModal rauslöschen und Ruhe ist. Nun kann man von der InitInstance aus alles aufrufen, was man braucht und gibt am Ende FALSE zurück, damit die Anwendung beendet wird.
Oder lebst du nach dem Motto "Warum einfach, wenns auch kompliziert geht?"
-
estartu_de schrieb:
Oder lebst du nach dem Motto "Warum einfach, wenns auch kompliziert geht?"
hm... weis nicht eine Dialoganwendung ohne Dialog. Ich bin mir nicht so sicher ob das gut ist das Programm so arg zu beschneiden. Einfach irgendwelche Quellcodedateien löschen und dann so ein Halbes Programm zu kompilieren
Allerdings kann das auch daran liegen das ich von der erfahrung her noch nicht soweit bin und noch nicht hinter die Kulissen blicken kann. Vieleicht ist deine Idee ja auch vollkommen legal und ich irre mich nur
-
Glaub mir, das ist schon okay so.
Ich mach das gerne für Testprogramme für dlls, die dann automatisiert was aufrufen. Da wäre jede GUI Zeitverschwendung.
-
Danke für die vielen Hilfestellungen !! ich werde es gleich am Montag ausprobieren ( da habe ich erst wieder Zeit). Ich meld mich dann nochmal
-
estartu_de schrieb:
Wenn du ein neues Projekt machst, dann wählst du Dialog aus.
Dann befolgst du die Schritte wie oben.Wenns wieder nicht klappt, gib mal deine Mailadresse, ich schick dir ein abgespecktes Projekt.
steht dass angebot noch?? meine mial ist GTimo.tr@web.de.
Ich komm einfach nicht weiter
-
VC6 oder 2003?
Wie soll die Exe heißen?Dann geht es gleich auf die Reise.
-
Habe Visual C++ 6.0
Wie soll die Exe heißen?
ist eigentlich egal .....nenn sie einfach control.exe oder so!
vielen dank im vorraus
-
Also wenn es egal ist, dann nimm doch die db.exe, die ich dir geschickt habe.
-
Danke!!!!!!!
Also ich weiss zwar noch nicht ob es jetzt funktioniert, aber ich bin zuversichtlich
!!Werde mich jetzt mal einarbeiten!!
-
Isch hätte da noch ne Frage: Wenn ich dass Programm ausführe dann wird ja die InitInstance ausgeführt,oder?
Wenn dass so ist wie übergebe ich dann die Parameter an das Programm?
Ich wollte es in einem anderen Programmm aufrufen : also : Program.exe Nummer und dann mit dieser nummer eine Abfrage starten.
-
-
THX
-
Moin Moin,
zunächst möchte ich mich für die vielen Hilfestellungen bedanken!! Mein Prog läuft jetzt so wie es laufen sollte ! Jetzt wollte ich es Testen aber komme Irgendwie nicht weiter.
Also meine InitInstance sieht so aus
BOOL CDbApp::InitInstance() { #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif CCommandLineInfo cmdStart; ParseCommandLine(cmdStart); //Daten aus der Comandoline holen Gt obj (cmdStart.m_strFileName); if (obj.ReadDB()) return TRUE; // wenn read true zurückgibt else return FALSE; // wenn read False zurückgibt }
nun will ich meine Datei in einer anderen Datei aufrufen. Dass geht soweit ich bis jetzt gelesne habe mit ShellExecute()!!
Nur wie muss ich die Parameter setzen wenn ich den Wert meines mit "Progarmmnamen.exe Daten" aufgerufenen Programmes will!! Also True oder False? mit einer If (ShellExecute()) bekomm ich eine Fehlermeldung!!hat jemand eine Ahnung wie dass funktionieren könnte??
-
Kann mir denn keiner Helfen??
Ich will doch nur mein Prog starten (habe ich bis jetzt nur mit WinExec() hinbekommen! Mit ShellExecute oder CreateProcess klappt es irgentwie nicht! Für mich wäre erst mal interressant wie ich den Ausgabe wert meines Geöffnteten Progs rausbekomme