XP:Programm verschwindet... GetOpenFileName ist schuld... aber warum? | Vista: alles geht
-
Scheppertreiber schrieb:
Basschlüssel ?
Ich habe seit einer Woche einen Kontrabaß, mannomann - einfach geil.
Der Jazzbass liegt nur noch in der Ecke :-))))))))))))))))))))))))Der währ mir zu groß xD
Ich hab ne Jamaha RBX-375 und fand die Idee von dem Programm mal witzig...Endlich zwei Hobbys füreinander arbeiten lassen.
Hast du Ahnung von solchen TABs? Bin da nicht so der Pro drinn und weiß nicht jedes Sonderzeichen und so...
Vllt. könntest du mir im "Regelwerk" helfen (nicht beim Programmieren xD)BTT:Hat jemand ne Ahnung wegen meinem Problem?
-
Was willst Du genau machen ?
Meinst Du, Noten in Tabulator-Darstellung umsetzen ?
Ist ehrlich gesagt Unfug, Noten sollte man können. Kommt auch drauf an wie der
Bass gestimmt ist. EADG (wie Klampfe unten) oder Quintenstimmung (einfach genial,
so wie Mandoline etc., Du erkennst den Baß nicht wieder).Quintenstimmung (GDAE) ist ideal für alles was mit Folk etc (zB Heavy Metal)
zu tun hat.Mit Noten-Lesen-Können ist das alles wesentlich einfacher.
-
G|--------------------------- D|--------------------------- A|--4-6-7--6-5---7-8-9--7-6-4 E|4------------7------------- H|---------------------------Weißt du ungefähr was es is?
Sowas soll mein Programm automatisch vervollständigen...
also aus
G| D| A| E| H|wird
G|- D|- A|- E|4 H|-sobald die 4 die KEYUP Msg erzeugt.. Das klappt auch alles...
Nur XP versagt bei dem GetOpenFileName...
-
Hm, naja kurz und knapp: Deine Funktion 'getOpenDlg' ist ja auch falsch: Du definierst innerhalb der Funktion eine Variable des Typs OPENFILENAME. Diese ist lokal. Den Elementen weißt Du dann lokale C-Strings zu. Beim Kopieren der Struktur (return-Wert auf 'myOpenDlg') werden aber nur Zeiger kopiert, und zwar auf Bereiche, die es net mehr gibt (, da ja nur der Default-Assignment-Operator aufgerufen wird). Des Weiteren: wie ist 'openFile' (char*) definiert bzw. initialisiert? Hast Du das beachtet:
MSDN schrieb:
lpstrFile
Pointer to a buffer that contains a file name used to initialize the File Name edit control. The first character of this buffer must be NULL if initialization is not necessary.?
Sieht nämlich nicht so aus. Und bei der verwurschtelten Funktion, wundert mich der Post auch net mehr: http://www.c-plusplus.net/forum/viewtopic-var-t-is-217979.html
.
-
CodeFinder schrieb:
Du definierst innerhalb der Funktion eine Variable des Typs OPENFILENAME. Diese ist lokal. Den Elementen weißt Du dann lokale C-Strings zu.
Nein... Ich übergebe die Pointer auf die "C-Strings" an die Funktion, das heißt, wenn ich dann die OPENFILENAME Variable in die Originalfunktion kopiere, sollte alles richtig sein.. Und bei dem ersten Verwenden klappt ja alles, nur halt wenn ich Projekt öffne und sofort darauf nen TAB... dann schwupps die wupps.. alles weg

CodeFinder schrieb:
Beim Kopieren der Struktur (return-Wert auf 'myOpenDlg') werden aber nur Zeiger kopiert, und zwar auf Bereiche, die es net mehr gib
Naja da ich schon nen Pointer übergebe, wird er beim verlassen der aufgerufenen Funktion ja nich gelöscht... Zumindest sollte das nicht gemacht werden...
Wie kommst du darauf, dass ich in der Funktion C-Strings anlege...?
char openFile[300] = { 0 };//steht in der funktion die dann getOpenDlg aufruft
-
Vermutlich zerschießt du dir irgendwo beim "Projekt öffnen" den Speicher. Bei deinem etwas strubbeligen Programmierstil würde mich das nicht wundern.
Benutz doch einfach mal den Debugger.
-
MFK schrieb:
Vermutlich zerschießt du dir irgendwo beim "Projekt öffnen" den Speicher. Bei deinem etwas strubbeligen Programmierstil würde mich das nicht wundern.
Benutz doch einfach mal den Debugger.
Hihi... Ihr kritisiert alle, aber gebt keine Tipps.. das ist toll..
if( user == lippoliv ) hasDebugger = FALSE;^^Ändert sich diesen oder nächsten Monat.
[nurlesen]Also: Ich zerschieße glaub ich nichts, weil ich ja ohne Probleme 2mal Projekt öffnen ausführen kann... [/nurlesen]
^^der abschnitt ist egal, aber er hat mich zum Testen gebracht, und naja 2mal TAB öffnen ging, 2mal PRJ öffnen nicht...Jetzt habe ich die Unterschiede bis ins kleinste durchgegangen und der unterschied war, das ich bei PRJ der beiden den Titel des Progs anders veränder als bei dem TAB... diese Zeilen sind auskommentiert, und schon läuft die kiste...
Danke werde wohl erstmal den Fehler suchen xD...
-
lippoliv schrieb:
Hihi... Ihr kritisiert alle, aber gebt keine Tipps.. das ist toll..
MFK schrieb:
Benutz doch einfach mal den Debugger.
Na, wenn das mal kein sinnvoller Tip ist, den du dir echt mal überlegen solltest, weiß ich es auch nicht...
-
Ja sicher das ist ein Tipp, aber mir stehen da keine Mittel zur verfügung...
Ich kann leider nicht selbst bestimmen was ich nutze... Is ja hier nich mein PC xD
Aber ich werds mir zu Herzen nehmen und mal einen suchen, der aus C Code was macht xD
-
Ok ich habe mal rumgelesen, wegen "flakern" des Forms, unter anderem Beobachte ich bei mir GDI-Objekt schwankunen (im TaskManager)
Das ist alles nicht schlimm, es kommen 2 dazu gehen 2 weg, jeh nach aktion. ABER.
Öffne ich diesen OpenFileName kommen 200 dazu..
Schließe ich ihn GEHEN NUR 140 WEG??? 
Dann steigt mein Prog von 18 -> 221(oder so) und beim Schließen fällt es auf 75... ja wo kommen die 57 unbekannten her?(Zwischendrinn wird nur da gezeichnet, wo auch vorher gezeichnet wird, wo also die GDIs verschwinden)...
Hat wer ne ahnung? Welchen Codeabschnitt wollt ihr sehen?
-
wenn dir kein Debugger zur verfügung steht, warum ladest
du dir dann nicht einfach einen herunter?
-
Melan schrieb:
wenn dir kein Debugger zur verfügung steht, warum ladest
du dir dann nicht einfach einen herunter?Das währ ne super tolle sache... welchen? Wo gibt es einen Stand-Alone C Debugger?
Währ echt
wenn du einen wüsstest, ich habe noch keinen gefunden, und es gab einsame Stunden wo ich sehr danach gesucht habe 
-
WinDbg
-
sri schrieb:
WinDbg
Den kenn ich, hab ich auch, komm aber ur nich drauf fit... Muss wohl noch weiter nach "How-to-use WinDbg" suchen xD