The Visual C++ ComponentsVC6.0의 파일들에 대한 설명과 VC6.0 구조에 대한 그림

2008-10-10 09:21:05

http://www.codeguru.cn/VC&MFC/ProgramingVC/ch01c.htm

출처: http://me2day.net/alones/2008/10/10

Posted by 창신다이

<script>
    function isInstalledActiveX() {
        var isInstall = false;
        try {
            var obj = new ActiveXObject("xxx.xxx.1");

//xxx.xxx.1 은 HKEY_CLASSES_ROOT에 등록된 ProgID (ex. Microsoft.ActiveXPlugin.1)
// 설치되어 있으면 obj 값은 [object]
// 안되어 있으면 undefine      

            if(obj)
                isInstall = true;
            else
                isInstall = false;
        } catch(e) {
            isInstall = false;
        }               
       
        if(isInstall)
            alert("ActiveX Control 설치");
        else
            alert("ActiveX Control 미설치");
    }   
</script>

이 글은 스프링노트에서 작성되었습니다.

Posted by 창신다이

첫번째로 속성 - 디버깅 - 명령 에서 콤보 박스에서 기본웹브라우저를 선택하면 해당 OCX를 OBJECT로 삽입하는 HTML 파일을 인자로 해서 디버깅을 할 수 있다.

이때 HTML 페이지에서 OBJECT태그에는 id속성과, classid속성만 채워지면 된다.

두번째로 속성 - 디버깅 - 명령 에서 콤보 박스에서 ActiveX Control Test Container 를 선택한다. 이때 인자는 필요없다.

두번째 방법으로 디버깅을 시작하면 ActiveX Control Test Container
프로그램이 실행되고,
메뉴 - 편집 - 새 컨트롤 삽입에서 해당 OCX id를 선택하면 디버깅모드로 들어간다.

두번째 방법에서 ocx id를 인자로 넣어주는 방법이 있는지 좀 더 살펴봐야 하겠다

Posted by 창신다이

한글VC2005에서는 PPC2003은 기본적으로 한글이 지원된다.

Windows Mobile 5.0은  추가로 SDK를 설치하고 한글 에뮬레이터를 설치해야한다.

MS다운로드 URL:
http://www.microsoft.com/downloads/details.aspx?FamilyID=eec33ae3-c129-4c25-abaa-18e8e842178f&DisplayLang=en

Posted by 창신다이

메세지 후킹 절차
1. SetWindowsHookEx의 hInst와 dwThreadId를 이용해서 어느 응용 프로그램에 대해서 후킹할 지를 정하고 Callbak 함수인 lpfn 등록한다.

2. 후킹이 된 메세지에 대해 등록된 콜백 함수가 수행되며, lpfn 내에서 원하는 작업을 한 후에 다른 프로세스/쓰레드에서의 처리를 위하여 CallNextHookEx로 메세지 전달

3. 후킹을 완료하였으면 UnhookWindowsHookEx 함수를 이용해서 등록 해제

Posted by 창신다이
① [도구]→[인터넷 옵션]→[임시 인터넷 파일]→[설정]→[개체 보기]
② 마우스 오른쪽 버튼으로 삭제할 ActiveX 컨트롤 클릭 → [제거] 선택
③ [주의] 시스템에서 삭제되므로 신중히 선택해야 합니다.
Posted by 창신다이
Posted by 창신다이
SQLConfigDataSource
Posted by 창신다이

1. ocx파일 및 기타 필요한 파일을 포함하여 설치하는 cabinet(CAB) 파일을 만든다.
VB의 경우 배포마법사라는 툴로 포함 되어 있음.
그 외에는 MS에서 제공하는 cab 제작 툴로 만들어야 함.

2. html에서 OCX를 object로 사용하고 COSEBASE 옵션에 CAB 파일이 어디에 있는지 경로를 정해주면 사용자의 pc에 설치 되어 있지 않으면 자동 설치됨.
VB의 배포마법사를 사용하여 만들면 Sample html 파일도 생성됨.

3. 만약 인터엣 상에서 사용할 경우는 보안떄문에 캐비넷 파일이 인증을 포함해야 하는데 인증기관에 돈을 내야함.
MS에서 제공하는 테스트 인증툴을 사용하면 약간의 불편함은 있지만 사용가능함.

** OCX 배포를 위한 CAB 만들기
①캐비닛파일 만들기
> sdk\cabarc -s 6144 n NhisUrl.cab NhisUrl.ocx NhisUrl.inf

②디지털 서명 보증서 만들기
1. 보증 확인 과정을 제어하는 레지스트리 키 설정
> sdk\SETREG 1 TRUE

2. 테스트용 x.509 보증서 생성
> sdk\MAKECERT -n "CN=홍길동" -sv pvkNhis.pvk cerNhis.cer
* test.pvk라는 개인키(private key)파일과 cer(회사보증서) 파일 생성됨. 이때 대화상자로 암호 입력함.

3. 테스트 보증서에서 테스트용 SPC(Software Publisher Ceritificate) 생성
> sdk\CERT2SPC cerNhis.cer spcNhis.spc

③CAB 파일에 디지털 서명 보증서 추가하기
> sdk\SIGNCODE -spc spcNhis.spc -v pvkNhis.pvk -n "프로그램명" NhisUrl.cab

* CAB파일에 보증서가 붙게 되며, 보증서는 CAB이 아니라 OCX나 DLL파일에 붙일수도 있다.

Posted by 창신다이
출처: http://www.tipssoft.com

Windows 프로그램을 하다 보면 Z order라는 말을 종종 접한다. 하지만, 그 의미가 무엇인지를 정확하게 아는 사람이 별로 없는 것 같아서 이렇게 소개한다.

"Z Order"는 어떤 창들이 다른 창들 뒤에 가려져야 하는지를 결정하는 방법이다. 좀더 자세하게 이야기하면 "A 윈도우의 Z Order"는 겹쳐서 쌓아 올려진 윈도우들 중에서 A 윈도우의 위치라고 할 수 있다.

사용자 삽입 이미지

우리가 보는 화면은 2차원적이다. 따라서 X축과 Y축으로 모든 것을 표현한다. 하지만 개념적으로 볼 때, 겹쳐진 윈도우들은 3차원적인 의미를 가지고 있다. 따라서 가상의 축(Imaginary Axis)을 하나 더 생각해야 한다. 이 측을 Z축이라고 하면 아래와 같이 표현될 것이다.

사용자 삽입 이미지

위 그림을 보면 알 수 있듯이 Z 축의 값이 겹쳐진 순서의 위치 임을 알 수 있다. 이것을 보면 왜 Z Order라는 용어를 사용하는 그 이유를 알 수 있을 것이다.

Windows는 기본적으로 Single List를 이용하여 Z Order를 관리한다. 그리고 Windows는 이 윈도우들이 topmost(top-level) 윈도우인지 또는 child 윈도우인지를 고려한 Z Order를 추가적으로 관리한다.

Topmost 윈도우들은 모든 non-topmost 윈도우들보다 더 위쪽에 출력된다. 이때, non-topmost 윈도우가 활성화되어 있다든지 가장 앞쪽에 있다는 것과 같은 상황은 무시된다. 이런 Topmost 윈도우들은 자신의 확장속성에 WS_EX_TOPMOST라는 속성을 가지고 있다. 그리고 child 윈도우들은 그것의 Parent 윈도우의 Z Order에 의해서 그룹 지어진다.

응용 프로그램에서 새로운 윈도우를 하나 생성시키면 Windows 시스템은 동일한 형태(topmost이든지 non-topmost)의 윈도우들이 가지는 Z Order에서 가장 위쪽의 값을 부여한다. 그리고 동일한 형태의 윈도우들간에 Z Order를 가장 높이고 싶다면 BringWindowToTop이라는 함수를 이용하면 된다.

SetWindowPos 와 DeferWindowPos 함수를 이용하여 윈도우의 Z Order를 재정렬 할 수도 있다.

Posted by 창신다이
1. DLL을 호출한 EXE파일이 있는 디렉토리.
2. 프로세스의 현재 디렉토리.
3. 윈도우 시스템 디렉토리.
4. 윈도우 디렉토리.
5. PATH 환경변수에 지정된 디렉토리..
Posted by 창신다이
해당 클래스의 .h .cpp 를 삭제하고,

.clw를 삭제한 후

ctrl + w를 하여 새로운 클래스 목록 생성...
Posted by 창신다이
ctrl + d 하면 상단 텍스트 박스에 포커스가 맞춰진다.

여기서 찾을려는 단어 입력.

다음 찾기 할때는 F3

더 편한 방법....

편집기에서 찾을려는 단어에 커서를 놓고

ctrl + F3 하면

상단 텍스트 박스에 해당 단어가 입력 된다.

그리고 다음 찾기는 F3
Posted by 창신다이

<찾기 및 바꾸기>
Ctrl + Shift + F 파일에서 찾기
Ctrl + Shift + H 파일에서 바꾸기
Alt + F12 기호 찾기

<고급>
Ctrl + G 줄이동

Ctrl + U 소문자로
Ctrl + Shift + U 대문자로

Ctrl + K, Ctrl + \ 가로 공백 삭제
Ctrl + R, Ctrl + W 공백보기
Ctrl + R, Ctrl + R 자동 줄 바꿈 // 스크롤 없앨때 사용
Ctrl + I (or F3) 증분 검색 // Ctrl + F 로 검색 후 동일 키워드로 계속 검색 하고 자 할때.

Ctrl + K, Ctrl + C 선택 영역을 주석으로 처리
Ctrl + K, Ctrl + U 선택 영역의 주석 처리 제거

<책갈피>
Ctrl + K, Ctrl + K 책갈피 설정/해제
Ctrl + K, Ctrl + N 다음 책갈피
Ctrl + K, Ctrl + P 이전 책갈피
Ctrl + K, Ctrl + L 책갈피 지우기
Ctrl + K, Ctrl + H 작업 목록 바로가기 추가 // 작업 목록 창(Ctrl + Alt + T)에 추가됨.
Ctrl + Shift + F12 이전작업

<Intellisence>
Ctrl + J 멤버 목록
Ctrl + Shift + SpaceBar 매 개변수 정보
Ctrl + K, Ctrl + I 요약 정보
Alt + Right Arrow(or Ctrl + SpaceBar) 단어 자동 완성

<다른 창>
Ctrl + Alt + K 작업 목록 창
Ctrl + Alt + A 명령창
Ctrl + Alt + O 출력창
Ctrl + Alt + T 문서개요

<디버깅>
Alt + 3 Watch
Alt + 4 Variable
Alt + 5 Registers
Alt + 6 Memory
Alt + 7 Call Stack
Alt + 8 Disassembly

Posted by 창신다이
Posted by 창신다이

예를 들어, 다음과 같이 동적으로 할당한 num이라는 변수가 있다면,
int * num = new int[100];

처음부터 100개까지의 항목을 보고 싶다면(전체),
Watch 창에서
num, 100
그러면 watch 창에 num[0]부터 num[99]까지가 표시.

만약 10번째 항목부터 90개의 항목을 표시하고 싶다면,
(num+10), 90

Posted by 창신다이

BLOG main image
오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아 간다. -앙드레 말로- by 창신다이

공지사항

카테고리

분류 전체보기 (248)
공장이야기 (115)
C/C++ 이라도 잘 하자 (23)
엑셀의달인 (8)
윈도우즈프로그래밍 (16)
Unix (3)
DB실전 (4)
MAC OS (3)
모바일 (18)
정보보호 (4)
보안가이드 (0)
WEB (2)
JAVA도 기본은... (2)
기술사 (0)
휴지통 (29)
Education (30)
회사이야기 (19)
일상 (73)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :