일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- linux
- 마이크로소프트
- 미가공
- 포트폴리오
- 김성엽
- Time
- MyTread
- 실습
- do it c
- 정처기 독학
- 유료강좌
- ListBox
- MFC 예제
- mysql
- C언어
- 충무창업큐브
- 별찍기 기초
- 별찍기
- C
- win32
- 정보처리기사
- SSG
- mfc 실습
- Tipsware
- 핵심 요약
- MyThread
- tips강좌
- 도움말
- C++
- MFC
- Today
- Total
목록분류 전체보기 (218)
History
이번글은 프로젝트 속성 페이지인 구성 속성에 대해 알아보도록 하겠다. 프로젝트의 "구성 속성"은 해당 프로젝트의 빌드 및 실행과 관련된 여러 설정을 포함한다. 이러한 설정을 통해 프로젝트의 동작을 세부적으로 제어하고 조정할 수 있다. 가장 많이 쓰는 핵심적인 5가지만 정리해 보았다. 1. 출력 디렉터리 이 속성은 해당 프로젝트가 컴파일이 됐을 때 프로그램이 배치될 경로이다. 보통 건드리지 않았다면 아래와 같이 매크로가 지정이 됐을 것이다. $(SolutionDir)$(Configuration)\ 2. 중간 디렉터리 빌드 프로세스에서 생성된 파일이나 중간 결과물이 저장되는 디렉터리이다. 주로 소스 코드 파일을 컴파일하고 링크한 후에 생성된 중간 바이너리 파일, obj 파일 등이 임시로 저장되는 공간이다. ..
이전 빌드를 해결하고 다시 빌드를 돌렸더니, 이번엔 C1083 오류가 나왔다. 이 오류 코드에 대한 문제의 원인은 MS 공식 도움말을 참고해서 몇 개 적어보겠다. 1. 지정한 파일 이름이 잘못된 경우 원하는 .h 파일 이름 확장명이 없다. 예를 들어서 include 지시문에서 올바른 철자로 include를 했으면 오류가 안 난다는 말이다. 또한 하위 디렉터리에 있는 헤더를 include를 해야할 상황이라 아래와 같이 선언을 해줘야 한다. #include 2. 잘못된 버전의 파일 이름이 포함된 경우 현재 x86으로 빌드 중일 때만 #include가 적용될 때가 있다. 이때 include를 잘 확인해야 한다. 3. 파일이 포함 검색 경로에 포함되지 않음 include문이 따옴표로 묶인 경우 이렇게 하면 컴파..
계속 같으면서도 다른 이유로 컴파일 오류가 발생하는 것을 이제 문서로 정리해서 올리려고 한다. 서로 다른 케이스로 반복되니까 시간을 하도 많이 뺏겨서 이젠 내가 내 블로그에서 찾으면 어지간한 오류는 해결할 수 있게 만들도록 해보겠다. DLL을 업데이트하는 작업 하다가 이런 오류를 만났다 오류 설명글을 보니까 static_assert에 걸린 것 같다. 여기까지 읽어서는 어디가 문제인지 모르겠다. 계속 읽어보면 마지막 줄에 WINDOWS_IGNORE_PACKING_MISMATCH defined라는 문구가 있다. 뭔가 이걸 검색하면 뭐라도 나오지 않을까 구글링을 해본 결과 4년 전 네덜란드 개발자가 이러한 문제로 질문을 올린 적이 있어서 답변을 참고해서 해결했다. 방법은 아래와 같다. 해당 프로젝트 속성-> ..
버그의 종류는 크게 2가지로 나뉜다. 1. 문법상 코드를 잘못 작성해 발생하는 문법오류. 2. 문법상 문제는 없지만 예상치 못한 결과가 발생하는 논리적 오류. 문법 오류는 IDE의 인텔리센스가 경고를 띄워주기 때문에 대처가 가능하지만, 논리적 오류는 코드상 문제가 아니라 들어온 데이터, 수식 상 문제 등으로 발생하는 것이기 때문에 어느 위치에서 오류가 발생했는지 알기 쉽지 않다. #include #pragma warning(disable:4996) int Func(int a_value) { int temp=5; temp /= a_value; return temp; } int main() { int ans=Func(0); } 간단히 위와 같은 코드로 예시를 들겠다. 위 코드에서 인자값으로 0을 줬고 인자값..
c언어에서는 올림(ceil)과 내림(floor) 함수는 지원하지만 반올림 함수는 따로 지원하지 않는다. ceil과 floor함수는 math.h를 include 해줘야 사용할 수 있는 라이브러리 함수이다. float data1=1.75452; float data2=0.1353; 위처럼 float형 data1과 data2라는 변수를 선언하고 초기화한다. data1을 기준으로 ceil을 사용하면 2.000000이 나올 것이고 floor을 하면 1.000000이 나온다. 난 floor을 활용하여 반올림을 간단하게 구현해보도록 하겠다. #include #include #pragma warning(disable:4996) int main() { float data1=1.75452; float data2=0.1353..
리눅스란? - 운영체제(OS: Operating System) 리눅스의 종류 - ubuntu, centos, Fedora 등등 다양한 종류가 있다. 그럼 이것들은 전부 같은 리눅스일까?라고 맞다. 그러나 각각의 차이점이 존재한다. 공통점 1. 리눅스 커널을 사용한다.(Linux kernel) 2. GNU Software를 사용하고 있다. -> GNU는 소프트웨어 만드는 단체라고 생각하면 된다. 차이점 1. 데스크탑 관리자 (gnome, KDE) 2. 패키지 매니저 (apt, yum, rpm) 3. 기본 파일 시스템 등등 운영체제(OS: Operating System) 리눅스가 운영체제이기 때문에 간략하게 운영체제에 대해서 글을 적겠다. 운영체제의 정의 - 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하는 시..
UpdateData(true); //컨트롤의 값을 변수로 전달 UpdateData(false); //변수의 값을 컨트롤로 전달 UpdataData는 컨트롤과 변수의 값이 변경되면 갱신해 주는 함수이다. 기본값은 TRUE로 설정되어있다. MFC는 컨트롤과 값을 사용자가 고쳤다고 해서 스스로 판단하여 갱신시켜주지 않기 때문에 UpdataData와 같은 함수를 사용하는 것인데, 이때 사용자가 값이 변화가 생겨서 갱신시켜줘야 하는 컨트롤이 DoDataExchange에 컨트롤과 변수가 연결된 상태여야 한다. 사용 예시는 아래 내가 쓴 링크를 보고 참고하면 된다. https://hard-go-head.tistory.com/entry/MFC-STATIC-%EC%BB%A8%ED%8A%B8%EB%A1%A4-%ED%85%..
처음 프로젝트를 만들면 다이어로그 기본 세팅이 위 이미지와 같을 것이다. "TODO: 여기에 대화 상자 컨트롤을 배치합니다." 이 문구는 기본적으로 STATIC 컨트롤로 되어있는데 속성은 아래와 같다. ID부분을 보면 IDC_STATIC이라고 되어있다. IDC_STATIC은 해당 STATIC의 ID를 나타내는 것으로 문자열을 변경하려면 아래 코드를 이용해서 바꿀 수 있다. BOOL CtestStaticStringDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 // 프레임워크가 이 작업을 자동으로 수행합니다. SetIcon(m_hIcon, TRUE);// 큰 아이콘을 설정합..