Jaka funkcja z WinAPI, MFC zdobyc sciezke do katalogu ktory pod windowsem jest widoczny jako zmienna systemowa %TEMP% ??
Tak szczerze nie chce mi sie pisać zajrzyj do MSDN > masz tu linka do tematu w MSDN 2003 > ms-help://MS.MSDNQTR.2003APR.1033/shellcc/platform/shell/reference/enums/csidl.htm#CSIDL_DRIVES
a tu linki do tematu w msdn on-line:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
</u>
no ale tempa tam nie ma :)
swoja droga majac juz jakis CSIDL jak wydobyc ta sciezke w MFC ?
sa tam przykladowe funkcje typu SHGetSpecialFolderPath(), ale trzeba do nich podac HWND (czyli uchwyt do okna). Moge w ogole w MFC uzywac funkcji z WinAPI ????
Nie mam zielonego pojecia jak z WinAPi to zrobic..
natomiast wiem co mowi standard C na ten temat...
anom...
// dodane o 9:13 dnia nastepnego
aaa.. tak w ogole to w nocy mam zacmienie
mozna uzyc przeciez getenv z stdlib
puts( getenv( "TEMP" ) );
// koniec
normalnie jest
int main( void )....
czasem
int main( int argc, char **argv )....
a w tym wypadku bedzie ostateczna (the ultimate!) wersja maina
int main( int argc, char **argv, char **env )
przykladowo ponizszy program zrobi to co "set" wpisane w konsoli bez parametru
#include<stdio.h>
int main( int argc, char **argv, char **env )
{
while( *env ) puts( *env++ );
return 0;
}
wszystko ma format ofc:
nazwa=dane
parsing tego jest wiec bardzo prosty:
#include<stdio.h>
int main( int argc, char **argv, char **env )
{
char *nazwa, *dane;
while( *env )
{
/* parsing */
nazwa = *env++;
dane = strchr( nazwa, '=' );
if( !dane ) continue;
*dane++ = '\\0';
/* wypisanie */
printf( "%s === %s\\n", nazwa, dane );
}
return 0;
}
teraz wystarczy ze w petle wstawisz jedno strcasecmp/stricmp i jestes w domu
#include<stdio.h>
int main( int argc, char **argv, char **env )
{
char *nazwa, *dane;
while( *env )
{
/* parsing */
nazwa = *env++;
dane = strchr( nazwa, '=' );
if( !dane ) continue;
*dane++ = '\\0';
if( stricmp( nazwa, "TEMP" ) == 0 ) break;
}
if( !*env ) return 1;
/* wypisanie */
printf( "%s === %s\\n", nazwa, dane );
return 0;
}
Wystarczy GetTempPath()
DWORD GetTempPath(
DWORD nBufferLength, // size, in characters, of the buffer
LPTSTR lpBuffer // address of buffer for temp. path
);