버전정보 2.9.9.0604

수정내용은
    - DebugThread pid를 실행파일명으로 변환
    - 가상리스트로 변환
    - 가상리스트 텍스트 복사 시 cchTextMax 체크(로그정보가 클 경우 스택오버플로우 발생)

가상리스트사용 버전 2.9.9.0604


가상리스트사용 이전 버전 2.9.9.0602

Posted by 넘실이

2009.06.04  ver 2.9.9.0604
    - DebugThread pid를 실행파일명으로 변환
    - 가상리스트로 변환
    - 가상리스트 텍스트 복사 시 cchTextMax 체크(로그정보가 클 경우 스택오버플로우 발생)
2009.06.02  ver 2.9.9.0602
    - XLOGOUT 사용시 로그정보를 간혹 잃어버리는 문제 수정
2009.01.02  ver 2.9.9.0102
    - WM_COPYDATA 로그추가 시  CSingleLock 적용 안함
2008.12.30  ver 2.9.8.1230
    - 디버깅 정보를 로그 추가 시 쓰레드 동기화 수정
    - 로그 리스트에 로그 추가 시 CSingleLock 적용
2008.12.19  ver 2.9.8.1219
    - 실행 시 이미 실행중인 프로세스를 다시 트레이에 표시 하고 종료함
2008.12.08  ver 2.9.8.1208
    - 로그 대기 큐 쓰레드 동기화 수정
2008.12.04  ver 2.9.8.1204
    - 로그추가 시 CSingleLock 적용
2008.11.25  ver 2.9.8.1125
    - 로그목록 Clear 시 PID 배열 초기화
2008.11.24  ver 2.9.8.1124
    - 쓰레드 CSingleLock 적용
2008.11.23  ver 2.9.8.1123
    - 설정대화상자 옵션 수정
    - 이벤트로그 시스템 배열갯수얻기 수정
2008.11.21  ver 2.9.8.1121
    - 대화상자 탭순서 변경
2008.11.19  ver 2.9.8.1119
    - 이벤트로그 문자열배열 얻기 수정
2008.11.14  ver 2.9.8.1114
    - PID 배열 수정
    - PID 갱신기능 추가
2008.11.12  ver 2.9.8.1112
    - Bottom Insert 시 Bottom 스크롤
2008.11.11  ver 2.9.8.1111
    - TopInsert 추가
2008.10.27  ver 2.9.8.1027
    - SaveLogSplit 수정
2008.10.17  ver 2.9.8.1017
    - 등록정보 DUMP창 크기 늘림
2008.10.16  ver 2.9.8.1016
    - 쓰레드 CSingleLock 적용 수정
2008.10.14  ver 2.9.8.1014
    - 쓰레드 CSingleLock 적용
    - 리스트에 로그 추가 시 Redraw 안하도록 함
    - 리스트에 로그 추가 시 InsertThread로 추가 함
    - 리스트에 로그 추가 시 SetClearLogListCount 호출
2008.10.09  ver 2.9.8.1009
    - 유니코드 DUMP 변환 수정
    - 목록표시 시 \r, \n 코드 제거
2008.10.07  ver 2.9.8.1007
    - 이벤트 로그 시간 동기화
    - 이벤트 로그 값 정상적으로 가져오도록 수정
    - 이벤트 로그 정상적으로 값을 얻었을 경우 추가
2008.09.22 ver 2.8.8.0922
    - 트레이 아이콘 마지막 리스트의 아이콘으로 대체
2008.04.09 ver 2.7.8.0409
    - 유니코드/안시코드 문자열 복사 수정
2008.04.08 ver 2.7.8.0408
    - DUMP데이터 헥사타입표시
2007.11.23 ver 2.7.7.1123
    - 시간 컬럼 사이즈 조정
2007.11.21 ver 2.7.7.1121
    - 이벤트 아이콘 변경
2007.11.20 ver 2.7.7.1120
    - 이벤트 로그 문자열 배열 저장
2007.11.16 ver 2.7.7.1116
    - InsertThread 추가 속도향상
    - Log/Debug/Event 각각 Enable/Disable 수정
2007.04.24 Ver 2.6.7.424
    - 탭기능 제거
2007.04.23 Ver 2.5.7.423
    - 서브탭 제거
    - Debug, Eventlog 메시지 사용제거
2007.04.04
    - 익스플로어가 다운되어 재 시작을 될 때 아이콘 갱신
2007.04.03 Ver 2.5
    - 개행문자 줄임
    - 저장속도 개선
    - C# 지원
    - 디버깅 모듈정보 검색 개선
    - EndSession 시 설정값 저장
2006.07.18 Ver 2.4
    - 로그 저장 유니코드 저장안되는 버그 수정
    - 로그 한줄로 저장
2006.06.28 Ver 2.3
    - 이벤트 로그 덤프데이터 추가
    - 이벤트 로그 기록 추가
2006.06.27 Ver 2.2
    - 자동실행 시 디버그 스레드 타이머로 실행
2006.06.14
    - 위치 간격 저장/읽기
2006.01.20 Ver 2.0
2005.01.22 Ver 1.2
2005.01.18 Ver 1.1
2004.11.05 Ver 1.0

Posted by 넘실이

Spline 그리기 예제

2009/04/03 18:36
CodeGuru.com에 있는  Draw a curve with control points 예제를 수정하였습니다.
[원본주소]
http://www.codeguru.com/cpp/g-m/gdi/article.php/c3689/

기능 추가
 >> 그래프 부드럽게 그리기
 >> 컨트롤 포인트 간 선위에 마우스 위치 판별
 >> 중간 노드 추가(선위에서 마우스 왼쪽 버튼 클릭)
 >> 노드 삭제 기능(컨트롤 포인트 위에서 마우스 오른쪽 버튼 클릭)
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

Posted by 넘실이
정적 라이브러리에서 MFC 사용으로 설정 시 COleDropTarget 상속받아 사용하기...

COleDropTarget을 상속받아서 클래스를 만들면
정적으로 빌드할적에 컴파일 오류가 나더군요...
error C2039: 'classCOleDropTarget' : 'COleDropTarget'의 멤버가 아닙니다.
error C2065: 'classCOleDropTarget' : 선언되지 않은 식별자입니다.


인터넷서 검색해서 해보니 바로 되네요..
유용할거 같아 올립니다.

원본링크는 여기에요...
http://topic.csdn.net/t/20051021/10/4341089.html

IMPLEMENT_DYNAMIC(CMyOleDropTarget , COleDropTarget)//<-여기때문에 오류 발생
위 오류나는 부분을...

IMPLEMENT_DYNAMIC(CMyOleDropTarget , CObject)
이런식으로 하라고 하네요...
Posted by 넘실이
묵시적 연결로 DLL을 사용하고 있는데
프로그램 종료시 다음과 같은 오류 메시지가 출력되더라구요..

응용 프로그램 오류"0x5a481531"에 있는 명령이 "0x00000014"의 메모리를 참조했습니다. 메모리는 "read"될 수 없었습니다.프로그램을 마치려면 [확인]을 클릭하십시오.

다른 프로그램에서는 이런적이 없었는데... 아마 이것저것 라이브러리를 많이 써서 그런가 봅니다.

문제가 되는 DLL이 꼭 묵시적연결로 빌드가 되어야 해서 프로그램 종료 전에 강제적으로 언로드를 할 방법을 찾다가

제 경우 FreeLibrary로는 DLL언로드가 안되는거 같더군요...

MSDN을 찾아봤더니 FreeLibraryAndExitThread 함수가 있습니다..

이걸 사용하니 되는군요..

유용할거 같아 올립니다.

아래는 사용법이구요... void CMainFrame::OnDestroy()에서 호출했습니다.


HMODULE hDLL = GetModuleHandle("DLL이름");
if(hDLL)
{
char szName[255];
GetModuleFileName(hDLL,szName,sizeof(char)*255);
//FreeLibrary(hDLL);
FreeLibraryAndExitThread(hDLL,1);
TRACE1( "FreeLibraryAndExitThread [%s]",szName);
}


자세한 사용법은 MSDN을 참고하세요...
Posted by 넘실이
태그 DLL
자동적으로 콤보박스 리스트를 표시할 일이 있어 알아봤습니다.

유용할거 같아 올립니다.

콤보박스 컨트롤에 CB_SHOWDROPDOWN 메시지를 보내면 됩니다.

ComboBoxCtrl.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);

아래는 MSDN의 내용이구요.

CB_SHOWDROPDOWN
An application sends a CB_SHOWDROPDOWN message to show or hide the list box of a combo box that has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.

To send this message, call the SendMessage function with the following parameters.

SendMessage(
(HWND) hWnd, // handle to destination window
CB_SHOWDROPDOWN, // message to send
(WPARAM) wParam, // show state
(LPARAM) lParam // not used; must be zero
);
Parameters
wParam
Specifies whether the drop-down list box is to be shown or hidden. A value of TRUE shows the list box; a value of FALSE hides it.
lParam
This parameter is not used.
Return Values
The return value is always TRUE.

Remarks
This message has no effect on a combo box created with the CBS_SIMPLE style.

Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winuser.h; include Windows.h.
Posted by 넘실이

Visual Studio 단축키 Ctrl+H 를 눌러 나온 바꾸기 대화상자
사용자 삽입 이미지
정규식 정리
단어 시작 : < (텍스트의 해당 지점에서 시작하는 단어만 찾습니다.)
단어 끝 : > (텍스트의 해당 지점에서 끝나는 단어만 찾습니다.)
줄 바꿈 : \n (모든 플랫폼에 적용되는 줄 바꿈 문자를 찾습니다. 바꾸기 식에 줄 바꿈을 삽입합니다.)
탭 문자 : \t (탭 문자, 유니코드 U+0009를 찾습니다.)

예제 1. CABCDlg클래스를 CMyDlg로 모든 소스를 변경한다.
찾을내용:<CABC
바꿀내용:CMy
사용에 체크 정규식 선택
대소문자구분은 소스에서 대소문자를 구별 할 경우 사용
검색에서 현재문서나 모든 열린 문서 중 선택
사용자 삽입 이미지


 CABCDlg에서 CMyDlg 변경된 결과
사용자 삽입 이미지


예제 2. CMyDlg클래스를 CMyDialog로 모든 소스를 변경한다.
찾을내용:Dlg>
바꿀내용:Dialog
사용에 체크 정규식 선택
대소문자구분은 소스에서 대소문자를 구별 할 경우 사용
검색에서 현재문서나 모든 열린 문서 중 선택
사용자 삽입 이미지



예제 3. 줄바꿈 변경
Visual Studio 편집기에서는 정상적으로 보이지만
사용자 삽입 이미지










메모장이나 다른 텍스트 편집기에서 열어보면 다음과 같이 표시된다.
때문에 디버깅이나 소스추적 시 라인정보가 꼬여 정확한 분석이 불가능하게 된다.
사용자 삽입 이미지


헥사편집기로 소스를 보면 줄바꿈 코드가 0D0A가 아닌 0D인것을 알수있다.
사용자 삽입 이미지


Ctrl+H를 눌러 바꾸기 대화상자 표시 후
찾을내용:\n
바꿀내용:\n
사용에 체크 정규식 선택
검색에서 현재문서나 모든 열린 문서 중 선택
사용자 삽입 이미지



바뀐 결과 대화상자 표시 됨
사용자 삽입 이미지








소스는 보기에 별차이 없어보이지만
사용자 삽입 이미지










헥사편집기로 소스를 보면 줄바꿈 코드가 0D에서  0D0A로 변경된 것을 알수있다.
사용자 삽입 이미지

Posted by 넘실이
TSC(ShortCut Execution) Ver 1.5.8.1220
바로가기 실행기
설명 - 시스템 트레이에 아이콘을 클릭하면
          바로가기 모음이 팝업메뉴 형식으로 표시됩니다.
          설정 대화상자에서 폴더 경로를 지정하거나
          Menu폴더안에 폴더나 바로가기 아이콘을 복사하여 넣으면 됩니다.
수정내용 - 버전 표시 수정


[시스템 트레이 아이콘]
사용자 삽입 이미지




[메뉴 실행 화면]
사용자 삽입 이미지













[설정 대화상자 화면]
사용자 삽입 이미지


Posted by 넘실이
메모장 대신 텍스트 문서보기용으로 만든 텍스트뷰 입니다.
MFC예제 중 Wordpad 소스를 보고 나름 수정했습니다.
첨부파일은 실행파일만 있습니다.

스크린샷의 글내용은 "노땅엔지니어의 노트"란 컬럼입니다.
http://www.ittrend.co.kr/board/board/noddang_list.html

사용자 삽입 이미지
Posted by 넘실이

제가 제작한 로그 저장 클래스 입니다.
첨부파일에 소스 및 예제가  포함 되어 있고 Visual C 7.0에서 제작하였습니다.

xLog 클래스 선언
----------------
#include "xLog.h"
CxLog m_Log;

xLog 클래스 초기화
----------------
m_Log.SetLogPath("c:\\");   // Set Log File Path
m_Log.SetLogAppName("Test Log"); // Set Log File Name
m_Log.SetLogExt("log");    // Set Log File Extension
m_Log.EnableTimestamp(TRUE);  // Set Time Stamp
m_Log.SetLogFileDay(CxLog::spDay); // Set Log File Day Type
m_Log.SetLogDelimiter(".");   // Set Log Delimiter

xLog 클래스 사용
----------------
m_Log.LogInfo(">>CTEST_LOGApp::InitInstance");

로그파일 내용[2008.12.16.Test Log.log]
----------------
12:18:51.343 [I] >>CTEST_LOGApp::InitInstance
12:18:51.484 [I] CMainFrame::OnCreate
12:18:51.500 [I] CTEST_LOGView::PreCreateWindow
12:18:51.500 [I] CTEST_LOGDoc::OnNewDocument
12:18:52.468 [I] CMainFrame::OnClose
12:18:52.531 [I] >>CTEST_LOGApp::ExitInstance


Posted by 넘실이

BLOG main image
프로그래머 by 넘실이

공지사항

카테고리

분류 전체보기 (14)
xLogWnd (6)
xLog (1)
Tools (2)
Tip (4)
Sample (1)

최근에 받은 트랙백

Total : 2,130
Today : 6 Yesterday : 1