카테고리 없음

비쥬얼스튜디오 2012 소스를 VC++ 6.0에서 컴파일

안녕1999 2017. 6. 23. 23:30

거의 최신 비쥬얼 스튜디오에서 작성된 소스를 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*)로 바꾸면된다.