2021의 게시물 표시

개조식

글을 쓸 때 짧게 끊어서 중요한 요점이나 단어를 나열하는 방식을 말한다. (반말처럼...) 아래 "문장1"을 서술식 기술, "문장2"를 개조식이라고 한다. 문장1 프레젠테이션의 스킬을 향상시켜주는 제안에 대한 기술서입니다. 중견 간부의 프레젠테이션에 대한 능력을 향상시켜 업무의 생산성을 높이는 것을 목적으로 합니다. 문장2 프레젠테이션 스킬 향상 과정 안내서 목적 : 중견 간부의 프레젠테이션 능력 배양, 업무 생산성 제고

블로그 편집 시 자주 사용하는 html 태그 모음

출력 문자 HTML 코드 < &lt; > &gt; (Tab) <span style="white-space: pre;"> </span>

[C++] string 자료형 대문자, 소문자 변환

https://github.com/MoongStory/StringTool tolower, toupper 기능 참고.

Integrity Level SID 값

const char * const INTEGRITY_LEVEL_SID_UNTRUSTED = "S-1-16-0"; const char * const INTEGRITY_LEVEL_SID_BELOW_LOW = "S-1-16-2048"; const char * const INTEGRITY_LEVEL_SID_LOW = "S-1-16-4096"; const char * const INTEGRITY_LEVEL_SID_MEDIUM_LOW = "S-1-16-6144"; const char * const INTEGRITY_LEVEL_SID_MEDIUM = "S-1-16-8192"; const char * const INTEGRITY_LEVEL_SID_HIGH = "S-1-16-12288"; const char * const INTEGRITY_LEVEL_SID_SYSTEM = "S-1-16-16384";

[C++] 다양한 형식 간 변환 (형변환)

char *에서 변환 wchar_t에서 변환 * _bstr_t에서 변환 CComBSTR에서 변환 CString에서 변환 basic_string에서 변환 Convert System:: String https://docs.microsoft.com/ko-kr/cpp/text/how-to-convert-between-various-string-types?view=msvc-160 int to string #include <iostream> #include <sstream> int main() { int int_value = 3; std::ostringstream int_to_string; int_to_string string to int, double #include <iostream> #include <sstream> int main() { int int_value = 0; std::stringstream int_string_stream("123"); int_string_stream >> int_value; double double_value = 0.0; std::stringstream double_string_stream("12.3456"); double_string_stream >> double_value; if (!int_string_stream.fail()) { std::cout

컴퓨터 예약 종료

명령 프롬프트 또는 실행 창에 입력. shutdown -s -t 60 이렇게 입력해 주면 된다. 위 명령어에서 60은 초단위 시간이다 60초는 1분이기 때문에 위 스샷대로 입력하면 1분 후에 종료가 되고 만약 1시간 뒤에 종료하고 싶다면 shutdown -s -t 3600 이렇게 입력해 주면 된다. 예약 종료 취소는 shutdown -a shutdown /? 를 입력하면 도움말을 볼 수 있다.

Windows 쓸만한 실행 창 및 명령 프롬프트(CMD) 명령어 및 단축키

콘솔 명령어 control 제어판 appwiz.cpl 프로그램 추가/제거 desk.cpl 디스플레이 등록정보 control Admintools 관리도구 control Userpasswords 사용자 계정 gpedit.msc 로컬 그룹 정책 편집기 관리콘솔 명령어 devmgmt.msc : 장치관리자 shutdown -i : GUI화면으로 시스템 종료, 재부팅 가능 shutdown -s : 시스템 종료 shutdown -r : 시스템 리부팅 shutdown -a : 종료 설정 중지 기타 실행 명령어 netstat : 인터넷 접속 상황 ipconfig /all : ip주소,게이트웨이,서브넷마스크, DNS서버주소,physical주소 dxdiag : 다이렉트X 진단도구 및 그래픽과 사운드의 세부정보를 보여줌 regedit : 레지스트리 편집기 calc : 계산기 charmap : 문자표 pbrush , mspaint : 그림판 control : 제어판 osk : 화상키보드 msconfig : 시스템 구성요소 유틸리티 msinfo32 : 시스템정보 mstsc : 원격 데스크톱 연결 notepad : 메모장 ping -t 사이트주소 : 핑테스트 해당 사이트의 인터넷연결 유무 확인 winver : 윈도우 버전확인 컴퓨터 단축키 모음 Alt+Enter (선택한 항목의 등록 정보 보기 or 선택한 개체의 등록 정보 표시) Alt+Esc (연 순서대로 항목을 순환) F4 키 (내 컴퓨터나 Windows 탐색기에서 주소 표시줄 목록 표시) Windows 로고+Break (시스템 등록 정보 대화 상자 표시) Windows 로고+M (모든 창을 최소화) Windows 로고+Shift+M (최소화된 창을 원래 크기로 복원) Windows 로그+E (내 컴퓨터 열기) Windows 로고+R (실행 대화 상자) Windows 로고+숫자키 (작업표시줄에 등록된 순서대로 실행) Window...

실행 창에서 사용 가능한 명령어 모음

제어판 바로실행 명령어 Contrl Panel의 약자로, 제어판에 나타나는 설정 항목 파일이며, EXE파일과 같이 실행이 가능하다. 일례로 디스플레이 항목의 파일인 desk.cpl파일은 더블 클릭하면 디스플레이 등록 정보가 실행된다. 각 제어판의 항목과 해당 CPL파일의 이름은 다음과 같다. control 제어판 Access.cpl 내게 필요한 옵션 appwiz.cpl 프로그램 추가/제거 bthprops.cpl 블루투스장치설정 desk.cpl 디스플레이 등록정보 firewall.cpl Windows방화벽 hdwwiz.cpl 새하드웨어추가마법사 inetcpl.cpl 인터넷 등록정보 intl.cpl 국가 및 언어옵션 irprops.cpl 적외선포트 설정 joy.cpl 게임컨트롤러 main.cpl 마우스등록정보 mmsys.cpl 사운드및 오디오장치등록정보 ncpa.cpl 네트워크연결 netsetup.cpl 네트워크설정마법사 nusrmgr.cpl 사용자계정 nwc.cpl 네트워크 게이트웨이 odbccp32.cpl ODBC데이터원본 관리자 powercfg.cpl 전원옵션 등록정보 sysdm.cpl 시스템등록정보 telephon.cpl 전화및모뎀 옵션  timedate.cpl 날짜 및 시간 등록정보 wscui.cpl Windows 보안센터 wuaucpl.cpl 자동업데이트 Sapi.cpl 텍스트 음성 변환설정 control Admintools 관리도구 control Folders 폴더옵션 control Userpasswords 사용자 계정 관리콘솔 명령어 certmgr.msc : 인증서 ciadv.msc : 인덱싱서비스 ntmsmgr.msc : 이동식저장소 ntmsoprq.msc : 이동식저장소 운영자 요청 secpol.msc : 로컬보안정책 wmimgmt.msc : WMI(Windows Management Infrastructure) compmgmt.msc : 컴퓨터...

Windows 단축키 모음

http://windows.microsoft.com/en-us/windows/keyboard-shortcuts#keyboard-shortcuts=windows-7 Ctrl+C (복사) Ctrl+X (잘라내기) Ctrl+V (붙여넣기) Ctrl+Z (실행 취소) Delete (삭제) Ctrl + 휠마우스 위로, 또는 아래로 (위로 : 텍스트 글꼴 확대, 아래로:글꼴 작게) Shift+Delete (선택한 항목을 휴지통에 넣지 않고 영구적으로 삭제) 항목을 끌면서 Ctrl 키 누름 (선택한 항목을 복사) 항목을 끌면서 Ctrl+Shift 누름 (선택한 항목의 바로 가기를 만듬) F2 키 (선택한 항목의 이름 바꾸기) Ctrl+A (모두 선택) F3 키 (파일 또는 폴더 찾기) Alt+Enter (선택한 항목의 등록 정보 보기 or 선택한 개체의 등록 정보 표시) Alt+F4 (활성 항목을 닫거나 활성 프로그램을 종료) Alt+스페이스바 (활성 창의 바로 가기 메뉴 열기) Ctrl+F4 (여러 문서를 동시에 열 수 있는 프로그램에서 활성 문서 닫기) Alt+Tab (열린 항목 사이에서 전환) Alt+Esc (연 순서대로 항목을 순환) F4 키 (내 컴퓨터나 Windows 탐색기에서 주소 표시줄 목록 표시) Shift+F10 (선택한 항목의 바로 가기 메뉴 표시) Ctrl+Esc (시작 메뉴 표시) CD-ROM 드라이브에 CD-ROM을 넣을 때 Shift 키 누름(CD-ROM이 자동으로 재생되지 않게 함 Microsoft Natural Keyboard 바로 가기 Windows 로고 (시작 메뉴를 표시하거나 숨김) Windows 로고+Break (시스템 등록 정보 대화 상자 표시) Windows 로고+D (바탕 화면 표시) Windows 로고+M (모든 창을 최소화) Windows 로고+Shift+M (최소화된 창을 원래 크기로 복원) Windows 로그+E (내 컴퓨터 열기) Windows 로...

실행 창에서 명령어 입력하면 프로그램 바로 실행되도록 레지스트리에 추가하기

'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths' 경로로 이동하여 App Paths에 우클릭을 하여 '새로 만들기 - 키'를 선택한다. 그럼 키가 추가가 되는데 이 이름을 실행창에 입력할 명령어 + 확장자로 바꿔준다. 예를들면 게임중의 하나인 League Of Legends라는 게임을 실행창에서 'lol' 이라고 입력하면 실행이 되도록 하려고 한다면 키 이름을 'lol.exe'로 변경해준다. 그리고 추가하여 이름을 바꾼 키를 마우스 우클릭하여 '새로 만들기 - 문자열 값'을 선택해 준다. 그럼 레지스트리가 하나 추가가 되는데, 이름을 Path로 변경해준다. 그럼 기본값 레지스트리와 추가된 Path라는 레지스트리 2개가 있는데 기본값에는 실행 파일 확장자까지 입력을 해주고 추가한 Path 레지스트리에는 실행 파일이 들어있는 경로를 입력해준다. ex) (기본값) - "C:\Riot Games\League of Legends\lol.launcher.exe" Path - "C:\Riot Games\League of Legends\" 여기까지 했으면 레지스트리 창을 닫고 맨 처음에 했던 실행창에 'lol'을 다시 입력해보면 League Of Legends 게임 클라이언트가 실행 되는것을 확인할 수 있다.

유용한 소프트웨어

프리웨어 (무료) microsoft Garage Mouse without Borders 하나의 키보드, 마우스로 2대의 PC 제어하는 프로그램. https://www.microsoft.com/en-us/download/details.aspx?id=35460 GM HDD SCAN 하드디스크 및 플래쉬 메모리에 대한 배드섹터 검사, 상태 체크 프로그램. http://www.gmdata.co.kr/gmtools/hddscan.html Microsoft Automate 자동화 프로그램. https://flow.microsoft.com/ko-kr/ WinMerge 파일 텍스트 비교 프로그램. 2개의 텍스트 문서의 내용을 비교해주는 프로그램으로 수정 전과 수정 후의 파일을 비교하여 어느 부분이 변경되었는지 비교하여 보여주며, 두 파일간에 다른 부분 편집 또한 손쉽게 할 수 있도록 되어있다. https://winmerge.org/ SysinternalsSuite MS에서 제공하는 각종 윈도우 툴들. procexp나 dbgview 등등 분석 툴들을 모아놓은 패키지이다. https://docs.microsoft.com/ko-kr/sysinternals/downloads/sysinternals-suite Dependency Walker (dll 분석 툴) dll이나 exe 파일을 실행하는데 필요한 다른 dll의 dependency를 확인할 수 있고, dll의 경우 해당 dll의 함수 목록을 확인할 수 있다. http://www.dependencywalker.com/ An open-source modern Dependency Walker. (x64) https://github.com/lucasg/Dependencies DependencyWalker.Net https://github.com/isindicic/DependencyWalker.Net VM Player (가상 머신) VM Ware의 무료 버전, snapshot 기능이 없어 많이 아쉽다. https://www.vmware....

WOL(Wake On Lan) 기능 사용

이미지
1. 일단 WoL 기능을 사용하기 위해선 당연히 WoL 기능을 활성화 시켜줘야 한다. 공유기와 랜카드 설정을 바꿔줘야 하는데 일단 공유기부터 설명하자면 공유기는 ipTIME 제품을 가장 많이 사용하므로 ipTIME 공유기를 기준으로 설명하는게 아니고 내가 ipTIME 공유기를 사용하고 있으므로 ipTIME 공유기를 기준으로 설명한다. (없는 공유기 설정을 내가 알수는 없으니...) 일단 일반적으로 ipTIME 공유기는 인터넷 주소창에 " 192.168.0.1 "을 입력하면 공유기 설정으로 들어갈 수 있다. 설정 화면이 나오면 "관리 도구 - 고급 설정 - 특수기능 - WOL 기능"으로 들어가서 아래 이미지에 빨간 네모로 표시해놓은 MAC 주소 찾기 버튼을 눌러서 현재 사용중인 컴퓨터의 MAC 주소를 선택하고 PC 설명에 원하는 명칭을 적고 추가 버튼을 눌러준다. (MAC 주소 찾기 버튼을 누르면 현재 공유기에 붙어있는 기기의 MAC 주소 목록이 다 나오는데 핸드폰 와이파이도 사용중이라면 그런 것들도 다 나온다. 그 중에서 뭘 선택해야 될지 모르겠으면 그냥 "현재 접속된 PC의 MAC 주소로 설정" 체크 박스를 체크하면 현재 공유기 설정을 하고 있는 PC의 MAC 주소가 알아서 들어간다.) 그럼 위 이미지처럼 My Computer 이라고 한 줄 추가되어 있는 부분에 추가가 된다. ( 공유기 설정 변경 후에는 저장을 잊지 말자!!! ) 다음으로 랜 카드의 WoL 설정도 변경해 줘야 하는데... 일단 장치 관리자를 들어간다. (WoL 기능을 사용하려고 할 정도면 장치 관리자 정도는 들어갈 수 있을거라고 본다;;) 아래 이미지처럼 장치 관리자 - 네트워크 어댑터에서 드라이버?를 우클릭하여 속성을 클릭하면 Windows 7 기준 아래와 같은 창이 뜨는데 빨간 네모로 표시된 "Shutdown Wake Up" 항목을 선택하고 값을 Enabled로 ...

특정 경로의 명령 프롬프트 창 바로 열기

이미지
일반적으로 컴퓨터를 사용하면 별로 쓸일이 그렇게 많지 않지만... 명령 프롬프트 창을 자주 사용하는 불쌍한 직업을 가진 분들에게 이 포스트를 바칩니다. 실행 창에서 "cmd"를 입력하여 명령 프롬프트 창을 열게되면 아래와 같이 윈도우가 설치된 드라이브 아래에 사용자 - 사용자 명이 기본 경로로 하여 창이 열리게 된다. 하지만 위의 경로에서 작업을 하는 일은 거의 없고 대부분 cd 명령어를 이용하여 작업할 곳의 경로로 이동해줘야 한다. 두세번만 이동하면 될 경우엔 그나마 낫지만 작업할 위치가 다른 드라이브이거나 깊다면 매번 cd 명령어로 이동하는건 엄청나게 귀찮다. 이런 경우엔 왼쪽 Shift 키를 누른 상태에서 마우스 우클릭을 하면 된다. 아래의 이미지는 그냥 우클릭한 경우 아래 이미지는 왼쪽 Shift 키를 누른 상태에서 우 클릭한 경우, 빨간 네모로 표시해 놓은 것처럼 "여기서 명령 창 열기" 항목이 추가되었다. 해당 항목을 선택하면 아래 이미지와 같이 현재 경로로 하여 명령 프롬프트 창이 열린다.

[Eclipse] 이클립스 코드 자동정렬 단축키

이미지
전체선택 - Ctrl + A 자동정렬 - Ctrl + Shift + F XML 문서 양식도 자동정렬 하기 이클립스 메뉴에서 Window - Preferences를 클릭 위 메뉴를 클릭하면 아래와 같은 화면이 뜨는데 빨간 네모로 표시된 부분을 차례로 선택해서 Split multiple attributes each on a new line 이 부분을 체크하고 Apply - Ok 또는 Ok 이렇게 설정을 마친 후 XML 파일에서 똑같이 Ctrl - Shift - F를 눌러 자동정렬을 수행하면 XML 코드도 자동정렬이 된다.

[Visual Studio] 코드 접기(Code Folding)

이미지
Visual Studio 2005 이상에서만 동작한다. #pragma region test_a // code #pragma endregion test_b 아래와 같은 코드가 있다고 할 때 아래와 같이 코드를 수정하면 코드 왼쪽에 코드를 접을 수 있게 '-'가 생긴걸 볼 수 있다. '-'를 클릭해보면 아래와 같이 코드가 접힌다.

[Visual Studio] 함수명_s 오류 관련, 오류 메시지 보이지 않게 하기(_CRT_SECURE_NO_WARNINGS 경고 or 에러, error C4996)

이미지
_CRT_SECURE_NO_WARNINGS 이 경고는 Visual C++ 2005 버전부터 만들어졌다. 이전 라이브러리에서 보완에 취약한 부분을 보완해서 _s가 붙은 라이브러리로 대체를 해야 한다는 뜻이다. [방법1] 소스코드 첫 부분에 #define _CRT_SECURE_NO_WARNINGS 이렇게 한 줄을 추가하면 _s가 없는 것이 _s가 있는 것으로 자동으로 맵핑이 됨. (불확실) [방법2] 소스코드 첫 부분에 #pragma warning(disable:4996) 이 줄을 추가하면 컴파일러가 경고를 내지 못하게 하는 역할. [방법3] 프로젝트 속성에서 왼쪽 C/C++ 항목에서 전처리기에 있는 전처리기 정의에 '_CRT_SECURE_NO_WARNINGS'를 추가. (또는 프로젝트를 선택한 후 Alt + F7) 가장 좋은 방법은 _s가 붙은 해당 함수를 사용. 대부분 _s가 뒤에 붙은 함수는 보안을 위해 인자가 한 개 늘어났다. 하지만 코드를 이식해야 되는 상황이 빈번하다면 얘기는 달라진다. _s가 붙은 함수는 Visual Studio에서만 사용이 가능한 함수로 이식성 면에서 좋지않고 %c와 %s말고 나머지는 scanf와 동일하기 때문에 scanf를 사용하는 것이 좋다. 따라서, scanf_s를 쓰기 보다는 scanf의 인자 형식을 통해 메모리 오버플로우가 나지 않도록 하거나... (참조 - scanf 매개변수(인자)의 형식 바로가기!!! ) 아니면 다른 방법을 찾아서 해야한다. 그리고 분야에 따라 다르겠지만 scanf는 현업에서는 거의 사용되지 않기 때문에 기초를 공부하는 입장에서는 신경쓰지 말고 '#pragma warning (disable : 4996)'을 추가하여 넘어가는 것을 추천한다.

[C] scanf 매개변수(인자)의 형식

scanf() 함수의 입력 형식 기호 바로가기!!! 1. scanf("%3s", str); scanf("%3s", str); 이렇게 할 경우 입력 버퍼로부터 3개의 문자열만을 읽어들이고 나머지는 입력 버퍼에 남아있게 된다. scanf("%3s", str); scanf("%c", &ch); 이렇게 코딩하고 입력시에 "abcdef" 를 입력해주고 출력을 해보면 %3s에서 3을 빼고 %s로 적었을 경우에는 str에 "abcdef"가 입력이 되고 입력 버퍼에 남아있는 엔터값이 ch로 입력이 되어 버리지만 위의 경우에는 str에는 "abc" 3자리만 str에 입력이 되고 ch에는 입력 버퍼에 남아있던 문자열중 첫번째 'd'가 입력이 된다. 2. scanf("%d", &num); scanf("%d", &num); 이렇게 코딩하고 입력을 "123ab45" 이렇게 하면 사용자가 입력한 문자열 맨 처음부터해서 문자가 나오기전까지 정수 부분만 입력이 된다. 따라서 위의 경우 num에는 숫자 123으로 초기화가 된다. 3. scanf(" %c", &ch); scanf(" %c", &ch); 이렇게 %c 앞에 공백을 두면 화이트 스페이스(tab, space bar, enter)가 무시된다. fflush(stdin); 으로 입력 버퍼를 비우는 방법의 경우 윈도우 기반에서는 정상 동작하지만 Unix/Linux, gcc 기반에서는 fflush가 정상적으로 동작하지 않을수도 있다. 4. scanf("%[12345]", str); char str[80] = {0}; scanf("%[12345]", str); // 사용자...

[Visual Studio] 기본 바로 가기 키 (shortcuts)

Visual Studio의 기본 바로 가기 키

[Visual Studio] 코드 자동 정렬

Alt + F8 (C, C++ 개발환경에서만 가능) Ctrl + K + F (블럭이 유지됨) Ctrl + K + D (블럭이 해제됨) Alt + F8은 C, C++ 개발환경에서만 코드 정렬이 되고 아래 두개는 C, C++, C# 개발환경 모두(이 3개만 확인해 봄)에서 코드 정렬이 된다. 비주얼 스튜디오(Visual Studio)2008 이상 버전(2008, 2010, 2012, 2013, 2015)에서 되는것까지 확인 했고 그 아래 버전에서까지 되는지는 모르겠다.

[Visual Studio] summary로 함수 사용 시 주석 내용 표시하기

이미지
#include <stdio.h> void test(); int main(int argc, char *argv[]) { test(); return 0; } /// <summary> /// <para>summary 테스트 입니다.</para> /// <para>이렇게 하면 함수 사용 시 설명을 표시해줄 수 있습니다.</para> /// <para>또한 para를 사용하면 이렇게 단락을 구분 지어줄 수 있습니다.</para> /// </summary> void test() { return; } XML 예약문자 <, >, &는 XML tag 표시와 entity를 표시하는 XML 예약문자로, XML 문서에 그대로 사용할 수 없다. < (less-than sign) &lt; > (greater-than sign) &gt; & (ampersand) &amp; 이렇게 코딩을 하면 아래 이미지와 같이 함수 사용 시에 함수 원형과 함께 설명이 보여진다. (함수 매개변수 입력하는 () 사이에서 Ctrl + Shift + SpaceBar를 눌러도 나타남.) Visaul Studio 2015에서는 안 되는것 같고, 그냥 함수 위에 주석으로 달아 놓으면 위 이미지처럼 표시된다.

[Visual Studio] 빈 프로젝트로 새 프로젝트 생성

이미지
Visual Studio(비주얼 스튜디오)를 실행시키면 아래와 같은 시작 페이지가 열린다. (Visual Studio 2012 기준, 2010도 대동소이하다.) 여기에서 빨간 네모로 표시된 새 프로젝트를 클릭해도 되고... 아래와 같이 메뉴에서 파일 - 새로 만들기 - 프로젝트를 선택해도 된다. 여기에서 Win32 콘솔 응용 프로그램을 선택하고 프로젝트 이름과 프로젝트 생성 위치를 설정하고 확인 버튼을 누르면 된다. (Win32 콘솔 응용 프로그램 항목은 왼쪽 리스트에서 Visual C++ 하위에 Win32에 있지만 Visual C++을 선택하면 모든 목록이 다 나온다.) (추가로 개발 환경 설정이 다른 언어로 되어 있으면 기본으로 보여지는 항목이 Visual C++이 아닐수가 있는데 이럴때는 왼쪽 항목 중에서 다른 언어 항목을 확장 시키면 그 하위 항목에 있으므로 선택해서 만들면 된다.) Visual Sutdio 개발 환경 설정 바로가기!!! 확인 버튼을 누르면 아래 이미지처럼 바뀌는데 여기에서 마침을 누르지 말고 다음 버튼을 누른다. 그럼 다음과 같은 화면이 나오는데 여기에서 아무것도 건드리지 말고 빨간 네모로 표시된 빈 프로젝트만 추가로 체크. 요렇게 빈 프로젝트를 체크하고 마침 버튼을 누른다. 그럼 이와 같이 빈 프로젝트가 생성이 된다. 이제 코드를 입력할 파일을 생성해야 하는데 아래와 같이 소스파일을 마우스 우클릭하여 추가 - 새 항목을 선택한다. (또는 소스 파일 항목을 선택한 상태에서 Ctrl + Shift + A를 눌러도 된다.) 그럼 아래와 같은 창이 뜨는데 C++ 파일을 선택하고 파일 이름을 입력하고 추가 버튼을 누르면 된다. (헤더 파일을 선택했다 하더라도 파일 이름에 확장자를 붙여서 쓰면 그에 따른 파일이 추가가 된다.) Visual Studio에는 C++ 컴파일러에 C 컴파일러가 포함이 되어 있기 때문에 따로 C컴파일러가 없다. 따라서 C언어 ...

[Visual Studio] 개발 환경 설정

이미지
Visual Studio(비주얼 스튜디오) 2010과 2012는 동일하나 그 이하 버전에서도 동일한지는 잘 모르겠다. 확실한건 6.0에는 없다. 아래 이미지와 같이 메뉴에서 도구 - 설정 가져오기 및 내보내기를 선택한다. 그럼 아래 이미지와 같은 창이 뜨는데 내보내기는 현재 설정되어 있는 설정을 파일로 만드는 것이고 가져오기는 파일을 읽어들여 그 설정을 적용시키는 것이다. 지금은 설정을 적용시키려고 하는 것이니 가져오기를 선택한 후 다음 버튼을 누른다. 다음 버튼을 누르면 아래 이미지와 같이 바뀌는데 현재 설정을 저장할 필요가 있으면 위를 선택하고 아닐 경우엔 아래를 선택. 다음 버튼을 누르면 아래와 같이 바뀌는데 여기서 원하는 개발 설정을 선택한 후 다음 버튼 클릭. 여기선 그냥 마침 버튼을 누르면 된다.

[Visual Studio] cmd(명령 프롬프트)창이 바로 닫히는 경우

실행할 때 F5가 아니라 Ctrl + F5를 누르면 된다. 하지만 이는 비주얼 스튜디오로 실행할 경우에만 가능하고 실행파일로 실행할 경우에는 안되기 때문에 main 함수가 종료되는 부분에 system("pause"); 코드를 넣어주면된다. system 함수를 사용하기 위해서는 stdlib(#include <stdlib.h>) 헤더 파일을 추가해줘야 한다.

[Visual Studio] 줄 번호 표시

이미지
아래 이미지 처럼 도구 - 옵션 클릭 (아직 코드 왼쪽에 줄 번호가 없다) 옵션 창이 열리면 아래와 같이 텍스트 편집기 - 원하는 언어를 선택 후 줄 번호에 체크를 하고 확인을 클릭 그럼 아래 이미지 처럼 코드 왼쪽에 줄 번호가 표시된다.

[MFC] List Control 컬럼 클릭 시 오름차순 내림차순 번갈아 가면서 정렬

헤더 파일에 typedef struct SORTPARAM { int columnIdx; bool sortDirect; CListCtrl *pList; }SORTPARAM; 구조체와 bool m_bSortDirect; bool 변수 추가 후 List Control의 HDN_ITEMCLICK 핸들러 추가 void CDocumentCheckUpReportDlg::OnHdnItemclickList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR); *pResult = 0; SORTPARAM sParam; sParam.pList = (CListCtrl *)GetDlgItem(IDC_LIST); sParam.columnIdx = phdr->iItem; sParam.sortDirect = m_bSortDirect; sParam.pList->SortItemsEx( CompareFunc, (LPARAM)&sParam ); m_bSortDirect = !m_bSortDirect; return; } SortItemsEx 함수 호출 시 호출되는 CallBack 함수 CompareFunc 추가 int CALLBACK CDocumentCheckUpReportDlg::CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { CListCtrl *pListCtrl = ((SORTPARAM *)lParamSort)->pList; int columnIdx = ((SORTPARAM *)lParamSort)->columnIdx; bool sortDirect = ((SORTPARAM *)lParamSort)->sortDirect; CString strItem1 = pListCtrl->GetItemText(static_cas...

[Java] JDK 환경 변수 설정

Java 환경변수 설정에 앞서 JDK가 설치되어 있어야 한다. JDK 설치하기 바로가기!!! JDK 설치가 완료 되었으면 환경 변수 설정을 해줘야 한다. Win + PAUSE 키를 눌러서 창이 뜨면 "고급 시스템 설정" 메뉴를 선택한다. 메뉴 선택 시 뜨는 창에서 "환경 변수" 버튼을 클릭한다. 버튼 클릭 시 뜨는 창을 보면 위쪽은 "사용자 변수", 아래쪽은 "시스템 변수" 부분으로 나뉘어 있다. 이 중 "시스템 변수" 부분의 "새로 만들기" 버튼을 누른다. 변수 이름 부분에는 'JAVA_HOME'을 입력하고, 변수 값에는 자바 경로를 입력한 후 확인 버튼을 누른다. (자바 경로는 디폴트로 설치 하였다면 "C:\Program Files\Java\jdk1.8.0_45"(버전은 다르다.)와 같다.) 'JAVA_HOME'이라는 환경 변수가 추가되었으면 이어서 환경 변수 중 'Path'를 선택하고 '편집' 버튼을 누른다. 그럼 기존에 입력되어있는 변수 값이 있을텐데 이 값의 맨 뒤에 ";%JAVA_HOME%\bin"이라고 입력해준다. 이렇게 하면 나중에 JDK를 업데이트하여 폴더에 버전이 바뀌더라도 'JAVA_HOME'에 있는 버전만 수정해주면 Path 부분은 수정하지 않아도 된다. 그리고 이클립스나 넷빈 같은 IDE 개발툴을 사용하면 상관없지만 에디트 플러스나 울트라 에디트로 개발을 한다면, Path 외에 CLASSPATH도 설정해 주어야 하는데 Path 설정은 위와같이 하면 되고 CLASSPATH 설정 방법은 다음과 같다. 마찬가지로 "시스템 변수" 부분의 "새로 만들기" 버튼을 누른다. 변수 이름 부분에는 'CLASSPATH'를 입력하고, 변수 ...

[Java] Java Development Kit(JDK) 설치

이미지
자바 프로그래밍을 하기 위해선 JDK(Java Development Kit) 즉, 자바 개발자 도구가 필요하다. JDK는 오라클 홈페이지에서 무료로 다운이 가능하며 오라클 메인 페이지 주소는 이렇다. https://www.oracle.com/ 오라클 홈페이지에 접속하면 메인 페이지에서 Products -> Software (Java) 메뉴를 선택한다. (홈페이지야 언제든지 바뀔 수 있겠지만 구성은 크게 바뀌지 않을 것이다.) 메뉴 선택 시 보여지는 페이지에서 JDK 설치 파일 다운로드 가능하다. 하지만, 주의할 점이 있다. Important Oracle JDK License Update The Oracle JDK License has changed for releases starting April 16, 2019. The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from prior Oracle JDK licenses. The new license permits certain uses, such as personal use and development use, at no cost -- but other uses authorized under prior Oracle JDK licenses may no longer be available. Please review the terms carefully before downloading and using this product. An FAQ is available here. Commercial license and support is available with a low cost Java SE Subscription. Oracle also provides the latest OpenJDK release und...

[Eclipse] 폰트(Font) 변경

이미지
아래의 화면과 같이 이클립스에서 Window -> Preferences 메뉴를 선택하면 아래 화면과 같은 창이 뜬다. 창이 뜨면 아래 화면에서 왼쪽 리스트에서부터 General -> Appearance -> Colors and Fonts를 선택하면 창의 중앙 부분이 아래와 같이 되는데 여기에서 Java -> Java Editor Text Font를 선택하고 맨 오른쪽에 Edit 버튼을 클릭한다. 그러면 아래와 같은 창이 뜨며 화면과 같이 원하는 글꼴을 선택하고 확인 버튼을 누른다. 이어서 Preferences 창에서 Apply -> OK 또는 그냥 바로 OK를 누르면 아래 화면과 같이 폰트 변경 완료!