일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C언어
- 유료강좌
- SSG
- C++
- 충무창업큐브
- MyTread
- linux
- 포트폴리오
- 별찍기 기초
- mysql
- 도움말
- 마이크로소프트
- win32
- MFC 예제
- 별찍기
- tips강좌
- Time
- 미가공
- MyThread
- mfc 실습
- 정보처리기사
- 김성엽
- MFC
- 실습
- 핵심 요약
- 정처기 독학
- C
- ListBox
- do it c
- Tipsware
- Today
- Total
목록Visual Studio (20)
History
이 카테고리는 오류 코드가 발생하고 해결하면 쓰려고 만든 곳이지만, 일하다가 이런 경우에 죽을 수도 있구나라는 사실을 알아서 기록용으로 남기려고 한다. 윈도우에서는 프로그램이 실행될 때 할당된 핸들 개수와 GDI Objects의 개수가 존재한다. GDI Objects는OS에서 인식하는 GDI 개체(글꼴, 브러쉬, 펜, 비트맵 등) DC가 UI에 너무 많이 열려있으면 발생할 수 있다. 특정 프로세스의 GDI Objects의 개수를 확인하려면 Process Explorer를 통해 알아보는 방법이 있다. 방법은 추후 기록용으로 올리도록 하겠다. GDI 개체 수가 10,000에 가까우면 Error -12: Out of Memory 가 발생하고 다른 그래픽 항목을 만들 수 없다. 이러한 버그에 걸리지 않도록 하려..
Visual Studio로 빌드할 때 C3861 : _T 식별자를 찾을 수 없습니다. 라는 문구가 뜨면 오류가 나는 CPP에 #include 헤더파일을 추가하면 해결된다.
이번글은 프로젝트 속성 페이지인 구성 속성에 대해 알아보도록 하겠다. 프로젝트의 "구성 속성"은 해당 프로젝트의 빌드 및 실행과 관련된 여러 설정을 포함한다. 이러한 설정을 통해 프로젝트의 동작을 세부적으로 제어하고 조정할 수 있다. 가장 많이 쓰는 핵심적인 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년 전 네덜란드 개발자가 이러한 문제로 질문을 올린 적이 있어서 답변을 참고해서 해결했다. 방법은 아래와 같다. 해당 프로젝트 속성-> ..
1. LIB과 DLL LIB(Library,*lib) 파일은 C언어 소스 파일을 컴파일해서 만든 목적 파일(*. obj)을 효율적으로 재구성해 놓은 파일이다. 따라서 라이브러리는 특정 소스를 대체하는 개념으로 사용되고 이미 컴파일 된 상태이기 때문에 추가로 컴파일되지는 않는다. 그러나 라이브러리는 실행 파일에 직접 포함되는 개념이기 때문에 라이브러리에 문제가 있어 라이브러리 파일을 다시 만들었다면 이 라이브러리를 사용하는 모든 실행 파일은 새 라이브러리 파일을 사용해서 다시 빌드해야 하는 불편함이 있다. 그래서 Windows 운영체제에서는 이런 불편함을 줄이기 위해서 DLL(Danamic Linking Library) 이라는 기술을 제공한다. DLL도 LIB처럼 실행파일에 종속된 개념이지만 DLL은 빌드..
https://learn.microsoft.com/ko-kr/windows/win32/api/shellapi/nf-shellapi-shell_notifyicona?redirectedfrom=MSDN&f1url=%3FappId%3DDev16IDEF1%26l%3DKO-KR%26k%3Dk(SHELLAPI%252FNIM_ADD)%3Bk(NIM_ADD)%3Bk(DevLang-C%252B%252B)%3Bk(TargetOS-Windows)%26rd%3Dtrue Shell_NotifyIconA 함수(shellapi.h) - Win32 apps 작업 표시줄의 상태 영역에 메시지를 보냅니다. (ANSI) learn.microsoft.com
https://learn.microsoft.com/ko-kr/windows/win32/api/shellapi/ns-shellapi-notifyicondataa?redirectedfrom=MSDN&f1url=%3FappId%3DDev16IDEF1%26l%3DKO-KR%26k%3Dk(SHELLAPI%252FNOTIFYICONDATA)%3Bk(NOTIFYICONDATA)%3Bk(DevLang-C%252B%252B)%3Bk(TargetOS-Windows)%26rd%3Dtrue NOTIFYICONDATAA(shellapi.h) - Win32 apps 시스템에서 알림 영역에 알림을 표시해야 하는 정보를 포함합니다. Shell_NotifyIcon 사용합니다. (ANSI) learn.microsoft.com