Language & API
Language & API/WINAPI_이론
2017. 5. 30.
레지스트리 키 및 값 데이터
레지스트리는 하이브로 나눌수 있다고 이전 블러그에 글을 올렸습니다. 그 하이브 안에는 수많은 키 와 값 그리고 데이터로 이루어 져있습니다. API 함수를 사용하기 전에 키와 값 그리고 데이터가 무엇이고 어떻게 만들어지는지 확인 해볼 필요가 있겠습니다. 먼저 RegEdit에서 간략하게 키를 하나 만들어 보겠습니다. 위치는 HKEY_LOCAL_MACHINE\SOFTWARE 아래에 TEST_RUN 이란 키를 만들었습니다. RegEdit 프로그램 마우스오른쪽을 클릭하면 위에 화면 처럼 표시됩니다. 새로만들기 -> 키를 누르면 되겠지요? 키를 만든후 이름을 TEST_RUN 이라 만들고 다시 아래에 Temp라는 키와 기본 네이밍이 된 키 하나를 만들어 놓습니다. 이제 키를 만들어 보았으니 값을 만들어 보기로 하겠습..
Language & API/C_기초
2017. 5. 30.
islower(_In_ int _C) 사용법
선언 or 정의_Check_return_ _CRT_JIT_INTRINSIC _CRTIMP int __cdecl islower(_In_ int _C); 설명알파벳 소문자일때 TRUE 반환값을 가집니다. 파라미터 _In_ int _C : 아스키 코드값(int) or ' ' 문자를 넣으면 됩니다. 반환값소문자 : int(2)그외 : 0 예제123456789101112131415161718192021222324252627282930313233343536#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ char ** _Env){ for (int i = 0; i
Language & API/WINAPI_이론
2017. 5. 26.
레지스트리 하이브 설명 및 WINAPI 레지스트 명령어 모음
레지스트리는 수많은 논리를 구분하는 하이브(hive)로 나눌 수 있습니다. 하이브는 모두 HKEY로 시작하며, 윈도우 API 정의로 이름이 지정되어 있습니다. HK로 시작하는 이 이름들은 HKCU, HKLM과 같이 짧은 3-4개의 이름을 줄인 것입니다. 하이브의 종류는 다음과 같습니다. HKEY_CLASSES_ROOT(HKCR): 파일연결, OLE 객체 클래스 ID와 같은 등록된 응용 프로그램의 정보를 담고 있습니다. 윈도우 2000 이후로, HKCR은 HKCU\Software\Classes와 HKML\Software\Classes를 편집합니다. 주어진 값이 위의 서브키의 두 곳에 존재하면, HKCU\Software\Classes의 항목을 사용합니다. HKEY_CURRENT_USER(HKCU) : 현재 ..
Language & API/MFC_ISSUE
2017. 5. 23.
[Error]atlsimpstr.h void Release() throw()
이걸로 2시간을 보낸듯 합니다. ㅎ 일단 증상은 디버깅 종료시 아래와 같이 디버깅 포인트가 잡힙니다. 즉 디버깅 중에는 별다른 증상을 발견하지 못합니다. Cstring 쪽에서 나는 에러로 생각은 드나 프로젝트를 다시 본지가 보름은 지났고 이전 했던 작업이 하나도 기억이 안나는 상태였습니다. 도대체 어디서 나는지 감을 잡기가 힘들어 이전 프로젝트로 일단 컴페어로 확인 결과(이것도 시간이 많이 걸렸습니다. 간만에 플젝을 열어 버려서) 해당 파일에서 CString buff_Str에서 난 오류 였는데요. 뭐 여기까지는 크게 문제가 안됩니다. 저의 경우 cpp에 와서 해당 변수가 char인줄 알고 memset을 해버려서 발생하는 문제였습니다. 보름전에 해당 작업을 하고 빌드 후 종료까지 보지 않아 이런 불상사가 ..
Language & API/C_기초
2017. 5. 22.
isgraph(_In_ int _C) 사용법
선언 or 정의_Check_return_ _CRTIMP int __cdecl isgraph(_In_ int _C); 설명제어 코드 + space 를 제외한 값들은 TRUE로 반환합니다. 파라미터 _In_ int_C : 아스키코드값(int) or ' '문자를 넣으면 됩니다. 반환값제어코드 : 0Space : 0그외 : True특수문자 : int(16)숫자 : int(4)대문자 : int(1)소문자 : int(2) 예제123456789101112131415161718192021222324252627282930313233343536#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ c..
Language & API/C_기초
2017. 5. 22.
isdigit(_In_ int _C) 사용법
선언 or 정의_Check_return_ _CRT_JIT_INTRINSIC _CRTIMP int __cdecl isdigit(_In_ int _C); 설명 0 - 9 까지 숫자일 경우 True를 반환합니다. 파라미터 int 형 아스키 값 or 문자(0 - 9) 반환값숫자 = True or int(4) 예제123456789101112131415161718192021222324252627282930313233343536#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ char ** _Env){ for (int i = 0; i
Language & API/C_기초
2017. 5. 19.
iscntrl(_In_ int _C) 사용법
선언 or ctype.h 정의_Check_return_ _CRTIMP int __cdecl iscntrl(_In_ int _C); 설명컨트롤 문자를 체크 합니다. 파라미터 _In_ int _C : 아스키코드값(int) or 문자를 넣으면 됩니다. 반환값컨트롤 문자 : true or int(32) ?반환값 bool 에 int로 받으면 true 일 경우 32가 나옵니다. 그외 : 0 이 반환됩니다. 예제123456789101112131415161718192021222324252627282930313233#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ char ** _Env){ f..
Language & API/C_기초
2017. 5. 19.
isblank(_In_ int _C) 사용법
선언 or ctype.h 정의_Check_return_ _CRTIMP int __cdecl isblank(_In_ int _C); 설명공백 이외는 0으로 반환합니다. 파라미터 _In_ int _C : 아스키코드값(int) or 문자를 넣으면 됩니다. 반환값공백 : true or int(64) ?bool 에서 true 가 int 로 받으면 64로 나옵니다. 예제1234567891011121314151617181920212223242526272829303132333435#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ char ** _Env){ for (int i = 0; i
Language & API/C_기초
2017. 5. 19.
isalpha(_In_ int _C) 사용법
선언 or ctype.h 정의_Check_return_ _CRT_JIT_INTRINSIC _CRTIMP int __cdecl isalpha(_In_ int _C); 설명알파벳(대, 소문자) 이외는 0으로 반환합니다. 파라미터 _In_ int _C : 아스키코드값(int) or 문자를 넣으면 됩니다. 반환값대문자 : 1소문자 : 2이외 : 0 예제123456789101112131415161718192021222324252627282930313233#include #include #include int main(_In_ int _Argc, _In_reads_(_Argc) _Pre_z_ char ** _Argv, _In_z_ char ** _Env){ for (int i = 0; i