February 26, 2009

[C/C++] Указатель на функцию

С функцией мы можем сделать две вещи:
-вызвать ее;
-получить ее адрес;
Если мы получим адрес функции и присвоим его какому-то указателю, то в дальнейшем сможем использовать этот адрес для вызова функции.
--------------------------------------------------------------------------------------------
/* функция, которая ничего не возвращает */
void function(){ printf( "Hello wrold" ); } /* обьявление функции */
void ( *pointer )( void ); /* обьявление указателя */

int main( int argc, char *argv[] ){
pointer = &function; /* берем адрес функции */
pointer(); /* вызов функции function() через ее адрес */
return 0;
}

/* функция, которая что-то возвращает */
char* function(){ /* обьявление функции */
static char *str = "HelloWorld";
return str;
}

char*( *pointer )( void ); /* обьявление указателя */

int main( int argc, char *argv[] ){
pointer = &function; /* берем адрес функции */
printf( "%s\n", pointer() ); /* вызов функции function() через ее адрес */
return 0;
}

/* функция, которая что-то принимает в качестве аргумента */
void function(const char *_s){ /* обьявление функции */
printf( "%s\n", _s );
}

void ( *pointer )( const char *); /* обьявление указателя */

int main( int argc, char *argv[] ){
pointer = &function; /* берем адрес функции */
pointer( "Hello world" ); /* вызов функции function() через ее адрес */
return 0;
}

--------------------------------------------------------------------------------------------

[C/C++] Получить имя пользователя в Windows

Ниже предоставленна небольшая функция, которая помогает определить имя пользователя в системе Windows:
--------------------------------------------------------------------------------------------
/* init */
char* winUserName(){
static char name[256];
unsigned long size = sizeof( name );
GetUserName( name, &size ); /* from windows.h */
return name;
}
/* using */
int main(int argc, char *argv[]){
printf( "%s\n", ::winUserName() ); /* from stdio.h*/
return 0;
}

--------------------------------------------------------------------------------------------

February 25, 2009

Уникальная установка .Net Framework 3.5 SP1

На Windows XP SP3 устанавливал .Net Framework 3.5 SP1
Пронаблюдал очень интересную картину: