Visual C++ Compiler != Visual Studio Compiler?
-
Hallo!
Ich habe ein Programm in Visual C++ programmiert (nur im Dos Fenster) ! Diese Programm läuft fehlerlos.
Jetzt wollte ich eine Windows Oberfläche mit MFC dazu machen! Wenn ich meine cpp und h Datei jetzt in das MFC Projekt einbinde zeit mir der Visual Studio Compiler jedoch zahlreiche Fehler mit der convertierung von Datentypen (Mir ist das auch schon aufgefallen, als ich ein MFC Tutorial durchgemacht habe - im Tutorial funktionierte immer alles fehlerlos und ich musste immer alles typecasten). Jedoch hat mein MFC Projekt in Visual Studio als auch mein eigentliches Programm in VisualC++ fehlerlos funktioniert. Mein Programm funktioniert aber in Visual Studio nicht.Hier ein Beispiel:
verz.name="C:\"; //Pfad zum Verzeichnis
HANDLE fHandle;
WIN32_FIND_DATA wfd;
fHandle=FindFirstFile(verz.name,&wfd); <--- Hier tritt der Fehler auf!folgender Fehler tritt auf:
Error 1 error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR' c:\documents and settings\nim\my documents\visual studio 2005\projects\tutorial\log analsyse\log analsyse\log.cpp 155
LPCWSTR kannte ich vorher nichtmal! Hab das nirgendwo eingesetzt! In Visual C++ trat dieser Fehler nie auf! Außerdem bennent VisualStudio viele Funktionen mit einem "W" hinten dran! Auch das viel mir schon beim Tutorial auf!
und weiter:
char *name=(char *)malloc(sizeof(char)*35);
strcpy(name,wfd.cFileName); <--- Hier tritt der Fehler auf!Error 2 error C2664: 'strcpy' : cannot convert parameter 2 from 'WCHAR [260]' to 'const char *' c:\documents and settings\nim\my documents\visual studio 2005\projects\tutorial\log analsyse\log analsyse\log.cpp 171
und so geht es mir bei vielen Funktionen! Das muss doch irgendeine Compiler Einstellung sein oder muss ich jetzt alles typecasten? Kann ich mir nicht vorstellen!
Kennt sich jemand aus?Herzlichen Dank für die Hilfe im Vorraus!
lg Marc
-
1. Es gibt in Win32 kein DOS-Fenster, sondern dies heisst "Console"
2. Du solltest Dich mal mit TCHAR beschäftigen... umgebe alle String-Literals mit _T("string"), dann ist schon mal dieses Problem weg. Auch solltest Du keinen "char" verwenden sondern "TCHAR". Und natürlich kein "malloc" sondern "new"
-
Danke für die Antwort! Werde mich morgen mit deinen Tipps beschäftigen!