copy geht nicht
-
Hey ich versuche eine .txt Datei einfach zu kopieren:
C/C++ Code:
CopyFile("./adressbuch.txt", "./adressbuch_backup.txt");Fehlermeldung:
Error 1 error C2660: 'CopyFileW' : function does not take 2 arguments
-
das ist doch klar. Du must der Funktion 3 Parameter übergeben:
http://msdn.microsoft.com/en-us/library/aa363851(VS.85).aspxCopyFile("./adressbuch.txt", "./adressbuch_backup.txt", FALSE);
-
In der MSDN (=>Google) gibts eine ausführliche Doku.
-
Fatal Error appears schrieb:
das ist doch klar. Du must der Funktion 3 Parameter übergeben:
http://msdn.microsoft.com/en-us/library/aa363851(VS.85).aspxCopyFile("./adressbuch.txt", "./adressbuch_backup.txt", FALSE);Kommt aber immer noch
Error 1 error C2664: 'CopyFileW' : cannot convert parameter 1 from 'const char [17]' to 'LPCWSTR'

-
CopyFile(_T("./adressbuch.txt"), _T("./adressbuch_backup.txt"), FALSE);Ev. musst du noch tchar.h inkludieren.
Lies hier nach, was das _T() bewirkt:
http://blogs.msdn.com/oldnewthing/archive/2004/02/12/71851.aspx
-
theta schrieb:
CopyFile(_T("./adressbuch.txt"), _T("./adressbuch_backup.txt"), FALSE);Ev. musst du noch tchar.h inkludieren.
Lies hier nach, was das _T() bewirkt:
http://blogs.msdn.com/oldnewthing/archive/2004/02/12/71851.aspxCopyFile(L"./adressbuch.txt", L"./adressbuch_backup.txt", FALSE);
sieht doch viel schöner aus.^^
Obwohl ich so die Vermutung habe unser Te will gar nicht mit Unicodestrings arbeiten und empfehle ihm deswegen in den Projekteinstellungen den Zeichensatz umzustellen.
-
[/quote]sieht doch viel schöner aus.^^ [quote]
Über die Schönheit kann man streiten, aber die Funktionalität ist auf jedenfall nicht dieselbe.
Simon
-
Und was ist der Unterschied?
-
Interessent schrieb:
Und was ist der Unterschied?
Dass
CopyFile( _T("..."), _T("..."), FALSE )sowohl mit Unicode als auch mit Ascii kompiliert. Dank dem Präprozessor kommt dann das bei raus:// Unabhängige Version mit Verwendung von Makros: CopyFile( _T("bla"), _T("blubb"), FALSE ); // Ohne _UNICODE kompiliert, Makros aufgelöst: CopyFileA( "bla", "blubb", FALSE ); // Mit _UNICODE kompiliert, Makros aufgelöst: CopyFileW( L"bla", L"blubb", FALSE );CopyFileA und CopyFileW sind dabei Funktionen der WinAPI, die A-Version erwartet Ascii-Strings, die W-Version Unicode-Strings. In den WinAPI-Headern ist der Einfachheit halber noch "CopyFile" definiert, was je nach _UNICODE<->oder-auch-nicht in die A- oder W-Version aufgelöst wird.
-
... und jetzt fehltnur noch die Info, dass die A Versionen intern auf dem Stack die Daten kopieren und in Unicode umwandeln und dann die W Version aufrufen!
Und evtl. werden auch die Ergebnisstrings dann von W wieder nach A gewandelt.A oder MBCS bedeutet für das OS also Overhead.
Man sollte nur noch Unicode entwickeln.