2019. 9. 18. 16:26


const int MAX_PATH(260);

char szPath[MAX_PATH];

GetCurrentDirectory(MAX_PATH, szPath);

2019. 9. 18. 11:39


Console 에서 MFC를 사용할 때 다음 헤더 파일을 포함해야 한다


#include <afxext.h>


Console 에서 MFC 함수를 사용하면 다음과 같은 에러가 난다


fatal error C1189: #error:  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]


원인은 다음과 같다


MFC 공유 DLL을 사용하기 위해서는 MD 대신 MT 로 변경한다


구성 속성 - C/C++ - 코드 생성 - 런타임 라이브러리 - 다중 스레드(/MT)


그리고 전처리기 CONSOLE 대신 WIN32 와  _WINDOWS를 추가한다


NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)



2019. 8. 13. 02:48


콜백 함수 


Function .onInit 

인스톨러가 실행되어 초기화가 막 끝난 시점. 보통 인스톨러가 시작되기 전 조건 검사 등을 여기서 검사합니다. (특정 프로그램을 종료시킨다거나. 등등..)


Function .onGUIInit

인스톨러 화면을 메모리에 불러들이고 보여주기 직전


섹션 또는 사용자 함수

섹션이 순서대로 진행되며 섹션에서 함수들을 호출합니다.


Function .onInstSuccess

설치가 끝나고 윈도가 닫히기 직전에 호출

대개 위와 같은 순서를 거칩니다. 중간 중간에 이벤트에 따라 아래와 같은 콜백 함수가 호출되기도 합니다.

-----------


Function .onInstFailed

인스톨 과정 중 언제든지 실패하면 호출됨


Function .GUIEnd

설치화면이 닫힌 직후에 호출됩니다. 설치 성공여부등에 전혀 상관 없습니다. 즉, 컴포넌트 페이지에서 컴포넌트 선택하다가 그냥 취소 눌러서 종료시켜도 화면이 사라질때 호출됩니다. 


Function .onMouseOverSection

컴포넌트 선택화면에서 마우스 커서가 섹션위에 위치할 때 호출됩니다.


Function .onRebootFailed

인스톨 중에 Reboot 명령으로 재부팅을 시도했지만 실패하면 호출됩니다.


Function .onSelChange

컴포넌트 페이지에서 선택한 섹션이 변경되면 호출됩니다. 


2019. 7. 20. 18:46

윈도우즈 10 을 설치할 때 NTFS로 대부분 포맷해서 진행한다


하지만 EFI 기반이라면 설치가 진행되지 않는다


따라서 변경해주어야 한다




1. 설치할 때 시리얼 키를 입력하라고 하면 Shift + F10을 눌려 도스 창을  띄운다


2. Diskpart 명령어를 입력한다


3. list disk 를 입력하여 디스크 목록을 선택한다


3. Windows를 설치할 파티션을 선택한다


- select disk 0


4. Clean을 해준다


 - clean


5. 선택한 Disk를 GPT로 변경한다


 - convert GPT


6. 나간다


 - exit


7. 설치를 진행한다




2019. 7. 20. 18:39

이것의 문제는 Visual Studio solution 버전이 맞지 않기 때문이다


해결 방법은 해당하는 .sln 파일을 편집기에서 열어서 솔루션 버전으로 맞춰주면 된다


 


또는 다른 방법으로는 속성 - 실행 가능한 디렉토리 - 해당 파일 경로 추가


를  주면 된다

2019. 4. 24. 14:55

윈도우즈 10 을 설치할 때 NTFS로 대부분 포맷해서 진행한다

하지만 EFI 기반이라면 설치가 진행되지 않는다

따라서 변경해주어야 한다

1. 설치할 때 시리얼 키를 입력하라고 하면 Shift + F10을 눌려 도스 창을  띄운다

2. Diskpart 명령어를 입력한다

3. list disk 를 입력하여 디스크 목록을 선택한다

3. Windows를 설치할 파티션을 선택한다

- select disk 0

4. Clean을 해준다

 - clean

5. 선택한 Disk를 GPT로 변경한다

 - convert GPT

6. 나간다

 - exit

7. 설치를 진행한다

 

2019. 3. 28. 19:54

다음과 같이 하면 된다

 

현재 지정한 폴더를 바로 여는 방법은 추후에 찾아서 올린다

2019. 3. 20. 00:15

Visual Studio 2015에서


도구 - 옵션 - 텍스트 편집기 - C/C++ - 서식 - 간격 - 제어 블록의 간격 

- 제어 흐름 문의 키워드와 여는 괄호 사이에 공백을 삽입합니다


항목을 체크 해제한다

2019. 3. 19. 10:34

LINK : fatal error LNK1123: COFF로 변환하는 동안 오류가 발생했습니다. 파일이 잘못되었거나 손상되었습니다.


이런 글자가 나올 때 다음과 같이 해결하면 된다


원인 : 두 개 이상 다른 버전의 Visual Studio를 설치했기 때문


cvtres.exe 파일의 중복 존재


해결 방법 : 


C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin


C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64


위의 두 군데에 cvtres.exe 파일이 존재하는데 첫 번째 경로에 있는 cvtres.exe 파일을 다른 이름으로 변경하던지 삭제한다



2019. 3. 18. 10:41

도구 - 옵션 - 환경 - 키보드 - Visual C++ 6 로 설정

2019. 1. 23. 21:38

경로를 저장할 때 텍스트에서 \\를 \로 인식한다 


따라서 XML에 저장할 때 \로 저장한다


다시 로딩할 때 \\가 되어 있어야 하는데


\를 읽어들이기 때문에 파싱을 실패하여 로딩이 제대로 되지 않는다




* 해결 방법


- 저장할 때 \\ 를 \\\\로 변경하여 저장한다

2018. 12. 18. 16:20

함수 포인터는 많이 올라와 있지만


클래스 메서드 포인터를 파라미터로 사용하는 방법은 많이 없어서 


내가 자주 사용하기 위해 올린다



클래스 헤더 파일





클래스 소스 파일






실제 사용 파일



2018. 12. 4. 18:14

boost 파일을 다운 받아 압축을 푼다



bootstrap.bat 파일을 더블 클릭하여 실행하면 b2.exe 가 생성된다



커맨드 창을 띄운 뒤 b2.exe가 있는 경로로 이동한다



b2 명령어를 입력한다



b2 옵션


1.  link : static - static 빌드(.lib)     shared - dynamic 빌드 (.dll)


2.  address-model : 32 - 32 비트      64  - 64 비트


3.  variant : debug - debug 빌드      release - release 빌드


4.  toolset : msvc-10.0   (VS2010)      msvc-14.0  (VS2015)


5.  threading : single      multi


6.  runtime-link : static - MT 빌드       shared - MD 빌드



현재의 프로젝트 속성에 맞추어서 6개의 속성을 옵션으로 추가해 빌드하면 된다



* b2 명령 예제



1. VS2010 32 비트 static debug MT 빌드



b2 --toolset=msvc-10.0 --variant=debug --address-model=32 --link=static --threading=multi --runtime-link=static



결과물 - libboost_chrono-vc100-mt-1_58.lib



2. VS2015 64비트 shared(dll) release MD 빌드



b2 --toolset=msvc-14.0 --variant=release --address-model=64 --link=shared --threading=multi --runtime-link=shared



결과물 - boost_chrono-vc100-mt-1_58.lib



2018. 12. 3. 18:12

다음과 같다


2018. 12. 3. 17:58

Visual Studio 2010, CUDA 6.0 에서 


Visual Studio2015, CUDA 8.0으로 Migration 할 때 나는 버그



해결책


CUDA 8.0 이 VS2012 부터 VS2015 까지 지원


compute_20, sm_20이 deprecated 되어서 못 쓴다고 나온다.


Code Generation을 20 에서 30 으로 변경한다


compute_20, sm_20  ->   compute_30, sm_30