Avatar billede rrm Nybegynder
17. juli 2005 - 21:38 Der er 13 kommentarer og
1 løsning

indhold af mains argv[0]?

Davs

Er løbet ind i et lille problem med main argv[0] arguments. Problemet er at hvis jeg kører mit program fra Visual Studio så indeholder denne værdi navnet på filen samt den sti. Hvis jeg kører programmet fra kommando prompten, så får jeg kun filnavnet...

Er jeg helt forkert på den hvis jeg forventer f.eks. c:\test\fisk.exe er værdien af argv[0] ??

mvh
rrm
Avatar billede arne_v Ekspert
17. juli 2005 - 21:43 #1
det tror jeg er implementation specifikt altså compiler specifikt
Avatar billede arne_v Ekspert
17. juli 2005 - 21:46 #2
en hurtig test viser at både GCC og MSVC++ bruger det indtastede d.v.s. at kører man
programmet med sti indeholder argv[0] sti - kører man det uden sti så
indeholder argv[0] ikke sti
Avatar billede rrm Nybegynder
17. juli 2005 - 21:46 #3
tja, det er kompileret med Visual Studio 6 c++
Avatar billede arne_v Ekspert
17. juli 2005 - 21:47 #4
men jeg bestemt at der er et Win32 API kald til at hente image navn med (og jeg
antager at det altid har fuldt sti)
Avatar billede rrm Nybegynder
17. juli 2005 - 21:48 #5
er ikke helt med i det du skriver til sidst???
Avatar billede arne_v Ekspert
17. juli 2005 - 21:50 #6
jeg tror at der er en alternativ løsning !
Avatar billede rrm Nybegynder
17. juli 2005 - 21:51 #7
det jeg ikke forstår er "image navn"...
Avatar billede arne_v Ekspert
17. juli 2005 - 21:53 #8
her er det:

  char acPathName[MAX_PATH];
  GetModuleFileName(NULL, acPathName, sizeof(acPathName));
Avatar billede arne_v Ekspert
17. juli 2005 - 21:54 #9
image = exe
Avatar billede rrm Nybegynder
17. juli 2005 - 21:59 #10
ok tak for det.. Lige et hurtig sp. Er der en nem/god at til at checke om et directory/fil exisitere???
Avatar billede arne_v Ekspert
17. juli 2005 - 22:13 #11
jeg bruger ofte:

#include <sys/stat.h>

#include <iostream>

using namespace std;

bool exist(char *filename)
{
  struct stat sb;
  return (stat(filename,&sb) == 0);
}

int main()
{
  cout << exist("stat.cpp") << endl;
  cout << exist("nostat.cpp") << endl;
  return 0;
}

men jeg ved faktisk ikke om den virker med dirs
Avatar billede rrm Nybegynder
17. juli 2005 - 22:25 #12
hmm, den ser ud til at virker fint med dirs også tak for det...
Avatar billede rrm Nybegynder
17. juli 2005 - 22:26 #13
læg et svar hvis du vil have point'ne og tak for svarene
Avatar billede arne_v Ekspert
17. juli 2005 - 22:26 #14
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester