Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, WinAPI] Miejsce uruchomienia aplikacji

Ostatnio zmodyfikowano 2011-12-30 16:43
Autor Wiadomość
xevuel
Temat założony przez niniejszego użytkownika
[C++, WinAPI] Miejsce uruchomienia aplikacji
» 2011-12-29 11:43:56
Mam wrażenie, że taki temat już był, tylko nie mogę go znaleźć... Jak w WinAPI pobrać ścieżkę i nazwę mojego programu, który został uruchomiony?

Muszę zmieniać rejestr w zależności od położenia tego pliku (modyfikuje on jedno rozszerzenie).
P-46556
Mrovqa
» 2011-12-29 15:11:51
Użyj tego:
C/C++
LPTSTR GetAppPath( void )
{
    TCHAR app_path[ MAX_PATH ];
    GetModuleFileName( GetModuleHandle( NULL ), app_path, MAX_PATH );
    return app_path;
}
P-46595
xevuel
Temat założony przez niniejszego użytkownika
» 2011-12-29 15:34:01
Dzięki wielkie :) Chociaż nie musiałeś od razu funkcji pisać, wystarczyłby link do MSDN-a ;)

//EDIT:
No tak :) Ja będę musiał zmienić na string ;)
P-46603
Mrovqa
» 2011-12-29 15:35:22
Nie pisałem, w moim programie to miałem. Zwykłe kopiuj-wklej :) No może z mała zmianą, u mnie zwracała obiekt typu wstring.
P-46605
malan
» 2011-12-29 22:42:01
@Mrovqa: Gdzie Ty kompilowałeś ten kod? Jaki kompilator to przepuścił nie rzucając chociażby ostrzenia?
C/C++
#include <iostream>

char * function()
{
    char a[ 4 ];
   
    a[ 0 ] = 'a';
    a[ 1 ] = 'b';
    a[ 2 ] = 'c';
    a[ 3 ] = '\0';
   
    std::cout << "I'm in `function`, a = " << a << std::endl;
    return a;
}

int main()
{
    char * b = function();
    std::cout << "I'm in `main`, b = " << b << std::endl;
}
1>------ Rebuild All started: Project: 5893, Configuration: Debug Win32 ------
1>  main.cpp
1>e:\programowanie\temporary\5893\5893\main.cpp(11): warning C4172: returning address of local variable or temporary
1>  5893.vcxproj -> E:\Programowanie\temporary\5893\Debug\5893.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
P-46659
pekfos
» 2011-12-30 16:40:09
Heh, gdy było wstring pewnie działało :P
P-46687
Mrovqa
» 2011-12-30 16:43:11
Pisałem, że miałem (mam) inną funkcję. Swoją przerobiłem i bez kompilacji tu wkleiłem. Mi zwracało wstring :) Tak po za tym - ostrzeżeniami za bardzo się nie przejmuje... jak zacząłem pisać pierwsze programy to były one błahe, później w MTC było ich za dużo by czytać (np. porównanie signed X z unsigned X :P). Niemniej jednak od następnego projektu zacznę pisać czysto bez warningów :) (zamierzam :D).
P-46689
« 1 »
  Strona 1 z 1