2019/11/09에 새로고침됨
오래된 프로젝트인데... 초등학교 때 VB6을 접하고, 차례차례로 많은 프로그램을 작성했습니다. 중학교에 입학한 여름방학 때, "새로운 언어를 배우고, 마지막으로 VB를 작별 인사로 사용하여 VB6용 플러그인을 작성해보자"라는 생각으로 이 프로젝트를 시작한 것 같습니다( 이제 중학생이 된 것 같네요 ㅎㅎ) 그러나 기대했던 '이별 작업'은 아니었지만, 중학교 3년 내내 함께 해온 것은 초기의 '작은 플러그인'에서부터 점차 거대한 프로젝트로 확장되어 지금도 마찬가지다. 아마 제가 쓴 프로젝트 중 가장 큰 프로젝트일 겁니다. 그렇죠?
나보다 오래된 IDE/언어인 Microsoft Visual Basic 6.0. 내가 이 프로그램을 작성했을 때 VB6은 사람들의 시야에서 사라지기 시작했고 지금은 아마도 메모리에만 존재하는 것 같습니다. 고등학교 3학년 때 이 프로젝트를 더 이상 유지하지 않겠다는 것을 깨달았기 때문에 시간을 내어 문서를 개선하고 Baidu Tieba VB Bar에 프로그램과 소스 코드를 공개했습니다. VB는 사용자가 적기 때문에 별로 주목을 받지 못하고 있는 것으로 알고 있습니다.
지금 돌이켜보면 저는 이 프로젝트를 통해 많은 것을 배웠습니다. 비록 제가 스스로 탐구하고 수년에 걸쳐 체계적인 연구가 아니었음에도 불구하고 다음과 같은 많은 지식을 배웠습니다.
이제 이 프로그램은 유지 관리가 중단되었으며 기술 지원을 제공하지 않습니다. (거의 잊어버렸습니다. ㅋㅋㅋ) 프로그램에 버그가 많고 코딩 스타일도 좋지 않습니다. 현재 VB6을 사용하는 사람이 거의 없다는 점을 고려하면 이 추가 기능 자체에는 실용적인 가치가 없지만, 여기에 포함된 기술적인 사항 중 일부를 참고할 수 있다면 그 가치를 발휘했다고 볼 수 있습니다.
Develop/iCode 开发者指南.docx
제가 소스코드를 공개할 때 작성한 문서이며, 일부 내용은 다음과 같이 구성되어 있습니다.
VB6 애드인 프로그램(Addin)은 VB에서 제공하는 인터페이스를 사용하여 IDE를 강화하여 특정 기능을 구현하는 플러그인입니다. 프로젝트의 주요 본문은 특정 구성 요소(Microsoft 추가 기능 디자이너 등)를 호출하는 ActiveX DLL입니다. 이러한 구성 요소는 IDE 동작을 제어하기 위한 제한된 인터페이스를 제공합니다. 이 프로젝트에서는 Hook, 메모리 수정 등도 사용됩니다. 인터페이스와 프로세스에 대한 개요는 docx 문서를 참조하세요.
컴파일 향상 도구. EXE 파일 아이콘을 자동으로 교체하고 고화질 아이콘을 지원합니다. 매니페스트 파일을 자동으로 삽입하여 시스템 테마에 따른 UAC 권한 및 범용 제어를 자동으로 적용하는 등의 기능을 구현합니다.
창 간 전환을 용이하게 하려면 IDE 작업 공간에 탭 표시줄을 추가하세요.
WIN32 API 및 GDI+ 메서드, 상수, 유형을 수집하고 자동으로 선언을 삽입합니다.
간단한 코드 오류 분석을 통해 최적화된 코드 들여쓰기 구성 도구입니다.
상세하고 포괄적인 코드 통계 도구입니다.
IDE 색상 일치는 메모리를 수정하여 VB의 단조로운 색상 일치를 깨고 사용자 정의할 수 있으며 프로그램 가져오기 및 내보내기 기능이 제공됩니다.
효율성을 향상시킵니다.
파일 창 컨트롤을 릴레이아웃합니다.
iCode의 아키텍처는 여러 번 수정되었습니다. 이제 각 구성 요소 프로젝트는 독립적이며, 런처 프로젝트(A라고 함)는 구성 요소 프로젝트(B라고 함)를 참조합니다. 클래스 모듈 인터페이스는 함수를 구현합니다. 메인 코드는 B로 작성되었습니다. A는 주로 IDE 인스턴스와 Hook 정보를 제공합니다.
이식이 용이하다는 장점이 있습니다. iCode는 여러 구성요소로 구성되어 있는데, 모두 하나의 프로젝트에 작성하면 디버깅이 헷갈리고 불편해집니다. 아시다시피 Hooks 등의 사용으로 인해 iCode를 컴파일한 후 테스트해야 하는 경우가 많습니다. 다른 불필요한 구성요소를 컴파일하면 많은 시간이 낭비됩니다. 이 아키텍처를 사용하여 먼저 컴포넌트 프로젝트 + 런처 프로젝트를 작성합니다. 테스트가 완료된 후 iCode의 실제 런처는 컴포넌트 프로젝트를 참조합니다. 컴포넌트에 문제가 있는 경우 약간의 호출 코드만 추가하면 됩니다. 원래 디버깅을 통해 시작할 수도 있습니다.
또한 일부 공용 메서드(주로 iFunction)는 동일한 코드 파일을 사용하여 동기화를 유지합니다.
임의의 사진:
Develop/iCode.chm
애드인 사용자 매뉴얼Develop/iCode 开发者指南.docx
에는 참조용으로 개발 과정에 대한 자세한 내용이 포함되어 있습니다.