[C++] Jawna konwersja stringów

Zergi

Użytkownik
Dołączył
Marzec 12, 2007
Posty
136
Witam

Mam pytanie co muszę zrobić aby kod poniżej działał

Kod:
#include <iostream>

#include <windows.h>

#include <cstring>



using namespace std;



int main(int argc, char **argv)

{

    string a,b,c;

    a = "C:";

    b = "tereferetest.exe";

    c = a+b;

    [u]CopyFileA(argv[0],c,0);[/u]

    return 0;

}

W copyfile wyskakuje błąd

Kod:
 C:Dev-Cpptest.cpp cannot convert `std::string' to `const CHAR*' for argument `2' to `BOOL CopyFileA(const CHAR*, const CHAR*, BOOL)'

Czy będe musiał użyć char zamiast string?
Pozdro
 

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Funkcja CopyFileA jako drugi argument przyjmuje C-String a nie string!! A to jest różnica. String i C-String to zupełnie dwie różne rzeczy. Krótki kursik ze znajomości tej klasy i się przekonasz. Na szczęście istnieje jednak funkcja składowa o nazwie c_str(), która jako rezultat zwraca C-String przekonwertowany ze Stringu na rzecz, którego tę funkcję wywołujemy, czyli:
Kod:
CopyFileA(argv[0],c.c_str(),0);
Błędu nie ma ale nie rozumiem po co ci to?
 

Zergi

Użytkownik
Dołączył
Marzec 12, 2007
Posty
136
Wielkie dzięki, daje oczywiście pomógł. A potrzebuje to do programu gdzie użytkownik będzie podawał gdzie ma sie plik zapisywać...

Jeszcze raz wielkie dzięki
 
Do góry Bottom