[C++] argv[0]

Zergi

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

Mam problem, otóż robie programik który sprawdza czy pliczek jest w odpowiednim miejscu jeśli nie jest to wyskakuje błąd jeśli jest to nic sie nie dzieje i teraz mam problem


Kod:
string a = "C:heh.exe";

if(argv[0] != a.c_str())

MessageBox(0,"HUH","HEH",MB_OK);

i teraz mam problem bo program zwraca zawsze True nawet wtedy gdy pliczek jest nazwany heh.exe i znajduje się na dysku C. Czy ktoś ma jakikolwiek pomysł dlaczego tak się dzieje

Z góry thx i pozdro
 

Zergi

Użytkownik
Dołączył
Marzec 12, 2007
Posty
136
Nie zadziałało podaje kod;p

Kod:
#include <iostream>

#include <cstring>

#include <windows.h>

using namespace std;



//zmienne

string a;

char ty[1];

const WORD dl = 255;

DWORD buf=100;

int main(int argc, char **argv){

    GetWindowsDirectory(Bufor,dl);     

    ty[0] = Bufor[0];

    a = ty[0];

    a = a + ":heh.exe";



    CopyFileA(argv[0],a.c_str(),0);

    if(argv[0] != a.c_str())

    MessageBox(0,"ERROR"","Błąd aplikacji",MB_OK | MB_ICONERROR);

return 0;

}

I nawet jak pozniej odpalam ten skopiowany pliczek to i tak wyskakuje error
 
3

31337

Gość
dlaczego porownujesz operatorem != *char z *char?
to jest do intów.
strcmp(argv[0], "twoj string")
zwraca 0 jak sa rowne

Kod:
a = ty[0];

 a = a + ":heh.exe";
nie...
snprintf(a, sizeof(a), "%c%s:heh.exe", ty, a);

Kod:
char ty[1];
nie lepiej poprostu char ty?
 
Do góry Bottom