그림판으로 이미지 자르기 입니다.


자를 이미지를 그림판으로 불러온 후, 

아래 빨간 박스 안에 있는 "선택"을 눌러 자를 이미지 영역을 선택합니다. 


아래와 같이 자를 영역을 선택한 뒤, 영역 안에서 마우스 우 클릭을 하여 팝업 메뉴가 뜨면

"자르기" 메뉴를 선택합니다.


완성된 모습입니다.


아래는 원본 이미지 입니다.


 

 

윈도우에서 특정 프로그램 실행 금지(방지)하는 방법입니다.

윈도우8에서는 확인 했는데, 윈도우7이나 윈도우 XP에서는 확인 하지 못 했네요.


먼저 제어판에 가서 관리 도구를 클릭합니다.


관리 도구에서 "로컬 보안 정책"을 클릭합니다.


"로컬 보안 정책" 창이 뜨면 먼저 소프트웨어 제한 정책을 클릭한 후,

메뉴에 "동작 - 새 소프트웨어 제한 정책"을 클릭합니다.


위에서 "새 소프트웨어 제한 정책"을 누르면 "소프트웨어 제한 정책" 하위에 보안 수준과 추가 규칙이 추가 되는데,

추가된 "추가 규칙"메뉴를 마우스 우 클릭하여 나오는 팝업 메뉴 중, "새 경로 규칙 만들기"를 선택 합니다.


찾아보기 버튼을 눌러 실행을 금지 하고자 하는 프로그램의 경로를 선택합니다.


재부팅하고 난 뒤 해당 프로그램을 실행하려고 하면 아래와 같은 창이 뜨면서 

프로그램이 실행되지 않습니다.



위 표는 랜 케이블 종류 중 CAT.5, CAT.5E, CAT.6, CAT.6E, CAT.7에 대한 성능 비교 표 입니다. 참고로 CAT은 Category이며 카테고리라는 용어는 TIA의 기준에 따른 것으로써 ISO에서는 Class라고 합니다.


일반적으로 가장 많이 사용하고 흔한 케이블은 CAT.5이며, CAT6과 더불어 대부분 UTP 케이블 입니다. 저희 아파트 내부망 같은 경우, 단거리에서 기가비트를 지원하는 CAT.5E에 공유기, 나스, PC 등 대부분의 기기가 기가비트를 지원하는 터라 랜선은 CAT.5E나 CAT.6를 사용합니다.


아래는 저희 집 네트워크 구조입니다. 내부를 기가비트로 구성한 덕분에 내부 기기 간에는 빠른 속도로 데이터를 주고 받습니다.



제가 사용하는 TS-212와 자작 나스입니다.



랜 케이블에 대한 좀 더 자세한 정보는 알이랑님 블로그에 있습니다.




페이스북 탈퇴는 정말 쉽습니다.

로그인 후 아래 주소로 이동 후 "계정 폐쇄"버튼을 눌러 진행 하시면 됩니다.

http://www.facebook.com/help/delete_account



 

 

윈도우 원격 제어(mstsc)는 보안상 계정에 암호가 걸린 계정만 접속하도록 하고 있습니다.

이러한 보안 정책 때문에 나 혼자 사용하는 데스크탑에도 비밀번호를 걸어야 할 때가 있는데,

계정에 암호가 걸려 있지 않아도 원격 제어를 할 수 있는 방법이 있습니다.


1. "실행" 창에 "gpedit.msc"라고 입력합니다.



2. "로컬 그룹 정책 편집기" 창이 뜨면 아래와 같이 [Windows 설정] - [보안 설정] - [로컬 정책] - [보안 옵션]으로 이동 후 "계정: 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한"을 "사용 안 함"으로 바꿔주면 됩니다. 단, 보안에 문제가 생길 수 있으므로 추천하지는 않는 방법입니다.




 

 

윈도우8에서 시작 프로그램을 추가, 등록하거나 삭제 또는 비활성화 하는 방법입니다.


먼저 시작 프로그램으로 등록하는 방법입니다.


시작 프로그램을 모든 사용자에게 공통으로 적용하려면 

"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

상기의 주소(경로)를 탐색기 주소줄에 입력해 아래와 같이 이동 후 원하는 프로그램을 넣어줍니다.



개별 사용자에게만 시작 프로그램을 적용하려면 

해당 사용자로 로그인해서 아래와 같이 "실행" 창에 shell:startup라고 넣어줍니다.




그럼 아래처럼 탐색기가 실행되는데, 윈도우 구동 시 시작하고자 하는 프로그램을 넣어주면 됩니다.




마지막으로 이미 등록된 시작 프로그램을 비활성화 하는 방법으로는 2가지가 있는데,

첫 번째 방법으로는 위에서 했던 것처럼 탐색기로 이동 후 아이콘을 직접 지워주는 방법과

두 번째 방법으로 지우지는 않고 작업 관리자에서 비활성화하는 방법이 있습니다.





숫자를 문자열로 바꾸는 itoa함수, ltoa함수, ultoa함수, fcvt함수, ecvt함수, gcvt함수에 관한 내용입니다.


※요약

itoa : integer 값을 2진, 8진, 10진, 16진 문자열로 변환합니다.

ltoa : long 값을 2진, 8진, 10진, 16진 문자열로 변환합니다.

ultoa : unsigned long 값을 2진, 8진, 10진, 16진 문자열로 변환합니다.

fcvt : 실수(고정 소수점:float) 값을 문자열로 변환합니다.

ecvt : 실수(부동 소수점:double) 값을 문자열로 변환합니다.

gcvt : 실수 값을 부호와 소수점을 포함하여 문자열로 변환합니다.


※함수 원형 및 설명

char *itoa( int value, char *string, int radix );
char *ltoa( long value, char *string, int radix );
char *ultoa( unsigned long value, char *string, int radix );
//value : 문자열로 변환될 정수 값
//string : 변환된 문자열이 저장될 버퍼의 포인터
//radix : 값의 기수. 10진수는 10, 2진수는 2, 16진수는 16 등 2~36 사이의 값
//반환값 : 변환된 문자열이 저장된 string 버퍼의 포인터

char *fcvt( double value, int count, int *dec, int *sign );
//value : 문자열로 변환될 실수 값
//count : 변환 문자열 중 소수점 이하 숫자의 길이
//dec : 소수점의 위치가 저장될 변수의 포인터
//sign : 부호가 저장될 변수의 포인터
//반환값 : 변환된 문자열이 저장된 내부 정적영역 버퍼의 포인터

char *ecvt( double value, int count, int *dec, int *sign );
//value : 문자열로 변환될 실수 값
//count : 변환할 문자열의 길이
//dec : 소수점의 위치가 저장될 변수의 포인터
//sign : 부호가 저장될 변수의 포인터
//반환값 : 변환된 문자열이 저장된 내부 정적영역 버퍼의 포인터

char *gcvt( double value, int digits, char *string );
//value : 문자열로 변환될 실수 값
//digits : 변환 시 의미 있는 숫자의 길이
//buffer : 변환된 값을 저장할 문자열 버퍼의 포인터
//반환값 : 변환된 문자열이 저장된 string 버퍼의 포인터



※예제

#include <stdio.h>
#include <stdlib.h>		//itoa, ltoa, ultoa, fcvt, ecvt, gcvt

int main( void )
{
	int  nInt  = 1234567890;
	int  nInt2 = 255;
	long nLong = -1234567890L;
	unsigned long nULong = 345678902UL;

	float nFloat = 3.141592f;
	double nDouble = 3.14e+5;

	int radix;
	char buffer[100];
	int dec, sign;
	char *pbuffer;

	//10진 문자열로 변환
	radix = 10;
	itoa( nInt, buffer, radix );
	printf( "%s\n", buffer );

	ltoa( nLong, buffer, radix );
	printf( "%s\n", buffer );

	itoa( nULong, buffer, radix  );
	printf( "%s\n", buffer );

	//2진 문자열로 변환
	radix = 2;
	itoa( nInt2, buffer, radix );
	printf( "%s\n\n", buffer );

	//16진 문자열로 변환
	radix = 16;
	itoa( nInt2, buffer, radix );
	printf( "%s\n", buffer );

	//--- _fcvt, _ecvt, _gcvt ---
	pbuffer = fcvt( nFloat, 7, &dec, &sign );
	printf( "%s %d\n", pbuffer, dec );

	pbuffer = ecvt( nDouble, 10, &dec, &sign );
	printf( "%s %d\n", pbuffer, dec );

	pbuffer = gcvt( nDouble, 5, buffer );
	printf( "%s %d\n", pbuffer );

	pbuffer = gcvt( nDouble, 10, buffer );
	printf( "%s %d\n", pbuffer );

	return 0;
}






운동할 때 기존 이어폰이 너무 걸치적 거려 편하게 운동하려고 HBS-730 하나 구매했습니다.

색상은 검정색이랑 흰색 있고, 제 아이폰이 샴페인 골드라 흰색 구매했는데 때가 좀 탈 거 같네요 ㅠㅠ


헬스장에서 운동하면서 5일 정도 사용 했습니다.


장점 : 

1. 기기와 연결이 빠르게 된다.

 : 제 아이폰에서 블루투스 On하고 HBS-730 전원 키면 Power On, Connected라고 음성으로 알려주면서 바로 연결됩니다.


2. 배터리 충전은 빠르고 소비는 늦다.

 : 하루에 1시간~1시간 30분 정도 듣는 편인데 자주 충전해야 할 필요성을 못 느끼고 있어요. 3~4일에 한 번?


3. 차폐 이어폰이다.

 : 헬스장에 시끄러운 음악이 나와도 차폐된 이어폰이라 덜 크게 들려서 좋아요.

내 노래를 좀 더 잘 들을 수 있어요, 대신 밖에서는 위험하죠~


4. 가볍고 유선에 비해 정말 편하다.

 : 유선은 단추나 옷에 걸리고 가지고 다니기도 불편하고 선 꼬이고 불편한게 한 두가지가 아닌데

블루투스 이어폰은 이런 면에서 정말 편해요~


단점 : 

1. 흰색은 때가 탈 거 같다.

 : 아직 때 타지 않았지만 재질이 좀 때가 잘 탈거 같은 느낌이에요.


2. 노래가 넘어갈 때마다 끊김

 : 노래가 끝나서 바뀌면 처음에는 좀 끊겨요. 짧으면 0.5초 정도, 길면 1~3초 정도요.


3. 음질이 그닥 좋지 않다.

 : 좋다고 느껴지다가도 어떤 음악 들으면 구리구리 하고 ㅠㅠ 

개인적인 부분인데 썩 좋지도, 썩 나쁘지도 않은 음질이에요.





상단 블루투스 연결 표시 옆에 배터리가 표시 됩니다.


연결된 LG HBS-730이 목록에 보이네요.




C언어 각 데이터형 범위 입니다.
출처는 MSDN입니다.




Type NameBytesOther NamesRange of Values

int

4

signed

–2,147,483,648 to 2,147,483,647

unsigned int

4

unsigned

0 to 4,294,967,295

__int8

1

char

–128 to 127

unsigned __int8

1

unsigned char

0 to 255

__int16

2

short, short int, signed short int

–32,768 to 32,767

unsigned __int16

2

unsigned short, unsigned short int

0 to 65,535

__int32

4

signed, signed int, int

–2,147,483,648 to 2,147,483,647

unsigned __int32

4

unsigned, unsigned int

0 to 4,294,967,295

__int64

8

long long, signed long long

–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

unsigned __int64

8

unsigned long long

0 to 18,446,744,073,709,551,615

bool

1

none

false or true

char

1

none

–128 to 127 by default

0 to 255 when compiled with /J

signed char

1

none

–128 to 127

unsigned char

1

none

0 to 255

short

2

short int, signed short int

–32,768 to 32,767

unsigned short

2

unsigned short int

0 to 65,535

long

4

long int, signed long int

–2,147,483,648 to 2,147,483,647

unsigned long

4

unsigned long int

0 to 4,294,967,295

long long

8

none (but equivalent to __int64)

–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

unsigned long long

8

none (but equivalent to unsigned __int64)

0 to 18,446,744,073,709,551,615

enum

varies

none

See Remarks.

float

4

none

3.4E +/- 38 (7 digits)

double

8

none

1.7E +/- 308 (15 digits)

long double

same as double

none

same as double

wchar_t

2

__wchar_t

0 to 65,535





문자열을 숫자로 변환하는 strtol함수, strtoul함수, strtod함수에 관한 내용입니다.


※요약

strtol : 문자열을 long 값으로 변환 합니다. 2진수, 8진수, 16진수 값을 10진수로 변환 합니다. (string to long)

strtoul : 문자열을 unsigned long 값으로 변환 합니다. (string to unsigned long)

strtod : 문자열을 double 값으로 변환 합니다. (string to double)

무작정 외우는 것보다 "string to long, string를 long형으로" 같이 외우면 더 잘 기억납니다.


※함수 원형 및 설명

long strtol( const char *nptr, char **endptr, int base );
//nptr : NULL로 종결되는 수식을 포함하는 문자열의 포인터
//endptr : 변환이 멈춰진 문자열의 포인터
//base : 변환될 문자열의 기수( 2, 8, 10, 16진수 선택 ) 2~36진수까지 가능
//반홥값 : 정수 값(long), 변환 실패시 0L 리턴. errno는 ERANGE로 설정
//		   -2,147,483,648 ~ 2,147,483,647

unsigned long strtoul( const char *nptr, char **endptr, int base );
//nptr : NULL로 종결되는 수식을 포함하는 문자열의 포인터
//endptr : 변환이 멈춰진 문자열의 포인터
//base : 변환될 문자열의 기수( 2, 8, 10, 16진수 선택 ) 2~36진수까지 가능
//반홥값 : 양의 정수 값(unsigned long), 변환 실패시 0L 리턴. errno는 ERANGE로 설정
//		   0~4,294,967,295

double strtod( const char *nptr, char **endptr );
//nptr : NULL로 종결되는 수식을 포함하는 문자열의 포인터
//endptr : 변환이 멈춰진 문자열의 포인터
//반홥값 : 실수 값(double), 변환 실패시 0.0 리턴. errno는 ERANGE로 설정
//		   1.7E +/- 308 (15 digits)


각 데이터형 범위


※예제

#include <stdio.h>
#include <stdlib.h>

int main( )
{
	char *strStrLong = "-1234567890";
	char *strStrDouble = "3.14e+100";
	char *strStrDoubleL = "1234567890123456789012345678901234567890";
	char *strString = "The answer is 50 points";
	char *stop;

	long nLong;
	double nDouble;
	unsigned long nULong;

	nLong = strtol( strStrLong, &stop, 10 );
	printf( "%d\n", nLong );

	nLong = strtol( strString, &stop, 10 );
	printf( "%d stop at '%s'\n", nLong, stop );

	nLong = strtol( &strString[14], &stop, 10 );
	printf( "%d stop at '%s'\n", nLong, stop );

	nULong = strtoul( strStrLong, &stop, 10 );
	printf( "%u\n", nULong );

	nDouble = strtod( strStrDouble, &stop );
	printf( "%.2e\n", nDouble );

	nDouble = strtod( strStrLong, &stop );
	printf( "%.2e\n", nDouble );

	nDouble = strtod( strStrDoubleL, &stop );
	printf( "%.2e\n", nDouble );

	//2진수, 8진수, 16진수를 10진수로 변환
	char *strStr2  = "1010";		//2진수
	char *strStr8  = "0123";		//8진수
	char *strStr16 = "0xFF";		//16진수
	int radix;

	radix = 2;
	nLong = strtol( strStr2, &stop, radix );
	printf( "%d\n", nLong );

	radix = 8;
	nLong = strtol( strStr8, &stop, radix );
	printf( "%d\n", nLong );

	radix = 16;
	nLong = strtol( strStr16, &stop, radix );
	printf( "%d\n", nLong );

	return 0;
}


+ Recent posts