비쥬얼스튜디오 2012 소스를 VC++ 6.0에서 컴파일
거의 최신 비쥬얼 스튜디오에서 작성된 소스를 VC++6.0에서 컴파일하려고한다. 물론, 2017년인 지금은 윈도우7이 대다수이고, 윈도우10도 있고, 윈도우XP는 점점 사라지는 추세이다. 윈도우7도 판매를 안한다. 어쨌든, 컴파일을 하려고한다.
물론, 내가 만든 소스가 아니다. 다른사람이 만든 소스를 컴파일할때는,
- 안쓰는 코드도 있다. 제거하라
- 최신기술(?)을 사용하는 사람들은 그게 어떻게 돌아가는지 모르는 경우도 많다.
내부를 모르니, 어찌 어찌 하다보면, 완전 소모적이고, 덩치크고, 어이없는 코드를 작성하는 경우도 많다. 간단하게 해결될것을 말이다.
특히 C++ 클래스 기능을 사용하다보면, 내부에서 어떻게 돌아가는지 알길이 없다. 그러니, 중복에 중복을 해서, 덩치크고, 무거운 프로그램이 만들어진다.
복잡한 코드는 생각보다 훨씬 간단한 코드로 대체될 수 도 있다.
우선 유니코드로된 파일이 몇개있다. 메모장에서 열어서 ANSI로 저장했다. 메모장에서 깨져서 열리는 파일은, 워드패드로 열어서, MS-DOS형식으로 저장, 메모장에서 열어서, ANSI로 저장. fatal error C1083: Cannot open include file: 'afxcontrolbars.h': No such file or directory 리본막대컴트롤 VC++6.0에서는 사용불가 참고문서
일단, 주석처리 using namespace Gdiplus;//주석처리 알수없는 DLL 헤더파일 #include는 헤더파일 찾아서, 전체경로명 넣어줌. include에서는 전체경로명에는 \가 아니라, \\로 해야함.
#include <set>//주석처리
#include "json.h" 위키문서 참조 JSON(제이슨[1], JavaScript Object Notation)은 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히,인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.
std::numeric_limits 이게 문제이다.
사용하는 코드(함수)인지 검색해본다.사용안하면, 삭제
파일을 못찬느다는 에러나는 include는 과감하게 주석처리했다.
불필요한 코드도 대부분(?) 제거했다.
우선 메인부터 찾는다.
이 프로그램은 다이얼로그로 만들어져있다.
OnInitDialog, OnPaint, 통신, 키보드, 마우스, 파일처리등을 살펴본다.
static_cast<int>는 (int)(...)으로 바꾸면된다.
dynamic_cast<xxx*>는 (xxx*)로 바꾸면된다.