본문 바로가기

C | C++ | VC++28

외산SW의 잠식 TODO:: 쪽팔리지만 시간내서 조달청에 두루에디트,(울트라에디터대항),두루인스톨러(인스톨쉴드및 널소프트의 각자설치프로그램) 이 2개를 국산SW로 등록 1) 풀소스코드 계승해서 발전시킬 스타트업 환영,풀소스코드 공개가능) 2) 국내 가상화폐거래소 및 증권관련 자동매매시스템 풀소스코드 협업공개가능 3) 레거시 시스템 C/S,웹기반등 무관 최적화 성능 유도 4)국방사업 분야,소프트웨어 감리 및 성능개선 보고서 등 비용절감 최대극대화,장애감소 및 자동화 (운영장비최소화,네트워크 서비스 절감등 컨설턴트가능) 2024. 4. 10.
시스템트레이딩 DART 및 증권사 API 또는 웹기반 OPENAPI를 활용한 자동매매입니다. 설정해놓고 자동매매 호가창 및 캔틀차트 자체 구현(컴포넌트,풀소스(c,c++),외부라이브러리 없음) CPU사용률 여기서 쓰인 차트및 그리드컨트롤,호가창로직 구현등 모든 화면 컴포넌트는 자체개발 풀소스입니다. 필요하시거나 상담원하시면 피드백 주세요. 2024. 3. 6.
[OLEDB] DataTable에서 ROWSTATE 삭제 row 찾는법 그냥참조하면 exception error 발생! 따라서, DataRow.Item(rowindex,DataRowVersion.Original)을 활용하자! 2021. 11. 14.
[소스공개] RealTime Trace Logger (log writer) RTL 이란? 고성능 멀티프로세스 통합로깅툴, 풀소스 오픈합니다. 업무나 단일 프로세스에서 비즈니스로직을 처리하면서 자체로깅을 하려면 시스템지연 및 업무지연을 발생합니다. 따라서,로깅과 업무로직을 분리하여 로깅프로세스가 별도상주하며, (시스템사양이 높아도, 자체 파일I/O는 시간이 느려서 성능저하 도래) 공유메모리를 통한 멀티프로세스(exe,thread)의 외부 트레이스 로그를 통합기록하는 툴입니다. BatGoRang.h/BatGoRang.cpp를 임포트하여,extern function을 사용하면 됩니다. 여러 프로그램에서 동시 사용가능 합니다. 거의 20년되가는 자작 프로그램 소스입니다. 풀소스 실행결과입니다.(2024.03월 현재) 농사를 지어서 밭을갈듯이 트레이스로그도 농사도구로 탭이름을 지었습니다.. 2021. 1. 16.
C++ 개발자 C++ 개발자 http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=030&aid=0002281874 2014. 6. 24.
MiniUtil Source Code Free! 소스 창고 대방출 사업.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 /* miniutil.h author: krkim mailto://yeamaec@hanafos.com (=> durumul@gmail.com) http://yeamaec.com (=> http://krkim.net) If you get this source code,use freely but leave this notice. 1990-2007,Yeamaec Communication.Co,.Ltd.All right .. 2011. 10. 6.
[Tip] VS2008 MFC 프로젝트 afximpl.h 파일찾기 또는 컴파일 오류 #include 가 경로에 없거나 컴파일시 오류 해결법(이전 버전 포팅시 주로 발생) $(VCInstallDir)atlmfc\src\mfc 를 Include Path에 추가 그래도 에러나면 프로젝트파일의 StdAfx.h 열어서 WIN_VER를 맞춰준다. #define WINVER 0x0501 2011. 4. 1.
2분법을 이용한 이진탐색(Binary Search) 샘플코드 이미 순차정렬된 레코드 배열에서 특정값을 찾기위한 탐색알고리즘으로는 여러가지가 있는데 그중 중간값으로 2분하여 탐색하는 이진탐색은 비교적 적은 코드로 단순한 for 문으로 하는 순차탐색 보다 탁월한 O(log2N)의 탐색시간을 자랑한다. 특히,배열이나 레코드 등 내부에서 관리하는 리스트가 대용량일때 빛을 발한다. // binarysearch.cpp : O(log2N)의 탐색 평균속도를 내는 2진탐색 샘플 // http://krkim.net #include "stdafx.h" #include "windows.h" struct MYDATA{ int pos; int style; }; int binarysearch(int *arraylist,int arraysize,int findvalue); int binar.. 2010. 12. 23.
[Tip] MemoryLeaks 메모리릭,메모리누수 실시간 디버깅하여 잡기 [팁하나] 디버그 모드에서 응용프로그램이 끝나면서 쏟아지는 Detected Memory Leaks! 가 많다면,분명 간과할 일이 아니다. 왜냐하면, 단 몇 바이트가 세더라도 365일 풀 가동되는 서비스나 기업 및 상업용 프로그램의 경우는 제품과 개발자,나아가 회사에 너무나도 치명적일 수 있기 때문이다. 단순 무식하게 하면 지정된 때에 재시작 하도록 하면 되겠지만... 기본적인 메모리누수를 잡지 않으면,언젠가 기억도 가물한 업체나 바이어에게서 연락이 올지도 모를 일이다. 이와 비슷한 도구로 Vld를 비롯하여 본 내용과 유사한 다른 글들이 인터넷에 다수 존재하지만,따라해도 마치 퍼오고 확인은 안한 글들처럼 실행도 안되고 불확실 하다. 또 Vld같은 경우는 디버그 툴이면서도 버그를 내장한 것을 직접 경험한 바.. 2010. 12. 14.
[Tip]첫째 예외가 있습니다. first-chance exception RPC 서버를 사용할 수 없습니다 Remote Procedure Call 관련하여 호출한적도 없는 Network 함수 임에도 이런 경우가 발생한다. 0x7c81eb33에 첫째 예외가 있습니다. 0x000006BA: RPC 서버를 사용할 수 없습니다 이 Exception Error 는 비록 내가 직접 Remote 접근을 위한 Network 함수를 호출하지 않았다해도 원격 디버거가 비활성되고 탐색창 Shell (네트워크가 보이는)이나 INET 함수가 시스템 내부적으로 호출되면 발생하는 것으로 보인다. 이 부분에 대해 디버그창 TRACE 문구가 뜰때 어디서 호출되는지 확인하는 법 디버그메뉴 > 예외 > 추가 를 눌러 새형식: WIN32 Exception 이름:아무거나 번호: 위의 경우 000006BA 입력하여 추가하면 해당 Exception이.. 2010. 11. 22.
[Tip] UAC 와 CreateProcess의 ERROR_ELEVATION_REQUIRED,SendMessage의 ERROR_ACCESS_DENIED UAC(사용자 계정 컨트롤) 와 CreateProcess의 ERROR_ELEVATION_REQUIRED,SendMessage의 ERROR_ACCESS_DENIED UAC(사용자 계정 컨트롤) 보안기능은 사용자에겐 불편함이,또 개발자에게는 참으로 골치덩이이자,손볼게 많은 것임에 틀림없다. 더군다나 PC업계 MS-Windows 에서는 (이제야) 32비트와 64비트의 과도기에 접어들면서 WOW에 따른 접근제한등과 맞물려서 개발자가 신경써야 할 부분이 늘어나게 되어 더욱 혼잡하게 된 상황인듯하다. UAC는 VC++ 2005,2008 이상 빌드시 메니페스트에 쉽게 FIX가능한데, 여기서 asInvoker 로 하자니,프로그램 파일폴더쓰기 금지,HKEY_LOCAL_MACHINE 레지스트리 쓰기금지,파일 쓰기 금지 등.. 2010. 9. 29.
[Tip]32bit 프로그램에서 64bit DLL DllRegisterServer 등록하기 오늘도 잠시 유용한 팁하나 올립니다. 윈7 32비트 응용프로그램에서 64비트 DLL 호출 및 등록은 죽었다 깨어나도 안된다. 그리고 윈도우 95부터 등장한 32비트에서 16비트 하위 호환실행을 지원하기 위한 WOW(Windows-On-Windows) 시스템에 의해 이제는 64비트 os하의 32bit 어플들이 지원되긴 하는데 이 32비트 응용프로그램들은 (윈도우즈 파일들)모두 SysWOW64 폴더로 리다이렉션 되기 때문에 System32 하의 64비트 프로그램들은 호출이 기본적으로 안되게 되어 있다. 아래 소스를 참조 바란다. 따라서, 직접 DLL을 로드하여 DllRegisterServer 를 호출하려면 호출자 EXE도 같은 64비트여야 한다. 여기서는 간략하게 32비트 EXE에서 64비트 DLL을 등록하.. 2010. 9. 24.
[Tip] 윈7에서 툴바 툴팁에 검은 잔상이 생길때 How to Fix Toolbar Tooltip's black background at a moment 이 현상은 원래 HIDE 된 상태의 팝업 윈도우에 WS_EX_LAYERED 의 레이어 속성이 들어가고 반투명 윈도우를 만들고 %를 올려서 서서히 보이게 하기 위한 기능으로 자주 사용하는데,문제는 HIDE된 Window가 나타날때 바로 검은반전 색상으로 껌뻑거리게 되는 현상 때문이다. 바로 테마를 먹힌 툴팁도 그러한데, 이런 현상은 다음처럼 반투명 레이어가 기본으로 툴바에 적용되는 툴팁의 속성을 변경해줌으로써 해결한다. 아래의 코드는 kxLibrary 의 툴팁 클래스 소스중 해당 부분이다. /* very important! windows 7 and theme applied, the tooltip fill.. 2010. 9. 17.
[Programming Tip] 탐색기 열면서 파일 선택하기 How to open explorer Folder and select the file programmatically 짬나는 시간에 아주 단순하지만 아주 유용한 팁을 하나 소개하고자 한다. 자신의 응용 프로그램에서 마치 뮤토런트 같이 파일 위치 열기시 폴더만 딸랑 열게 아니라, (해당 파일을 찾아 사용자가 일일이 스크롤 해야 하므로 번거롭다) 아예 파일까지 선택해주는 기능을 수행하려면 다음과 같이 하면 된다. 아마 보통 szOpenFile 가 있는 폴더를 열고자 할 경우, 패스에서 파일명 앞('\\') 까지 자른후, ShellExecute(NULL,_T("open"),szOpenPath,"",NULL,SW_SHOWDEFAULT); 이런식으로 자주들 쓰고 있었을 것이다. 아래처럼 약간 수정하면, 탐색기로 해.. 2010. 9. 16.
툴바에 텍스트 추가시 세로폭(높이) 가 커지는데 줄이는 방법 툴바에 텍스트 추가시 세로폭(높이) 가 커지는데 줄이는 방법 How to decrease ToolBar Height when added text and dropdown style SetToolbarText(IDM_FIND); SetToolbarText(IDM_REPLACE); dwButtonStyle = m_ToolBar.GetButtonStyle(m_ToolBar.CommandToIndex(IDM_FIND)); dwButtonStyle |= (BTNS_DROPDOWN | BTNS_CHECK |BTNS_AUTOSIZE);//여기서 BTNS_AUTOSIZE로해야 버튼들의 폭이 일률적으로 같게 안들어난다. m_ToolBar.SetButtonStyle(m_ToolBar.CommandToIndex(IDM_FIN.. 2010. 9. 16.
Owner Draw Menu 에서 WM_MEASUREITEM의 itemWidth와 WM_DRAWITEM이 다른이유 윈도우즈 프로그래밍을 조금만 하다보면 컨트롤을 직접 만들거나 기존의 컨트롤을 Customizing 할 필요를 느낄 것이다. 여기서는 그 중에서도 커스텀 메뉴의 것에 대해 심심한 팁을 소개하고자 한다. 즉, WM_DRAWITEM이나 MFC의 OnDrawItem()에서의 처리를 말하는 것이다. 막상 이부분을 개발하다가 대부분의 사람들이 한가지 이해가 안가는 것이 있을 것이다. 그것은 아마도 아무리 MEASUREITEM에 값을 설정해도,실제로 DRAWITEM시의 사각 영역이 약 14 만큼 더 늘어나서 항상 들어온다 라는 사실.. 과연 왜 그런가? 그 이유는 MS-윈도우즈가 내 윈도우의 프로시듀어가 메세지를 받도록 메세지큐에 전달하기 훨씬 이전에 이미 시스템 내부적으로 항상 CHECKBOX의 크기만큼 더해주기 .. 2010. 9. 15.
VC++ MyVector Simple Template Class My Vector Simple Array Template Class (fake vector) 2010. 9. 13.
VC++ 배포후 APPCRASH 런타임 오류 추적기 두루에디트의 불법복제 방지 기능차원에서 PC고유 식별자로 HDD 시리얼 번호를 검사하는 로직에서 가상화 기반에서 오류가 발생했다. 코드를 안정화 하든가 다른 방안을 검토 해봐야 겠다. 딴건 다 무시하고,짱돌이 보내준 소중한 아래 정보(이벤트 로그 내용) 로 추적시작! APPCRASH 는 메모리 폴트에서 야기된다.즉,잘못된 메모리 참조. : 오류 모듈 이름: vfo.dll : 예외 오프셋: 0000172b 1) 우선,해당 오프셋이라는 곳이 뭔 삽질내용이 들어가있는건지 확인하기 위해 VC++ 툴 dumpbin /disasm로 EXE로 어셈블리로 변환하여 C:\Program Files (x86)\DuruEdit>dumpbin /disasm vfo.dll /OUT:BB.TXT 하여 출력된 결과를 편집기로 불러오.. 2010. 9. 11.
VC++9.0 (MSVS2008) 에서 Afximpl.h <L_TYPE_raw> 오류 ProfUI 옛날버전 컴파일시 오류발생,Stdafx.h 에 아래를 추가한다. #define _MFC_VER 0x800 #if _MFC_VER >= 0x800 #define WINVER 0x500 #define _WIN32_WINNT 0x500 #define _WIN32_WINDOWS 0x500 #define _WIN32_IE 0x500 #define USE_STD_STREAM #define HRAWINPUT DWORD #include #endif 2010. 9. 10.
Rebar Band가 우측으로 align 되는 현상 이현상은 Common-Control 6.0 이상 Manifest 가 포함되어 있고 리바 밴드속성의 cx = cxMinChild 값이 동일할 때 나타난다. manifest with set Common-Controls version="6.0.0.0" How to Fix: rbBand.fMask = RBBIM_CHILD | RBBIM_IDEALSIZE |RBBIM_CHILDSIZE | RBBIM_STYLE | RBBIM_ID ; . . . LRESULT lResult = (BOOL)InsertBand(&rbBand); int nIndex = IdToIndex(nID); /* If has manifest with set Common-Controls version="6.0.0.0" ,a new band set r.. 2010. 8. 31.
투박한 윈도우즈7의 메뉴,툴바를 바꿔보자! 투박한 윈도우즈7의 메뉴,툴바를 바꿔보자! (플랫폼SDK 환경) KFCWnd Library에 UI 메뉴 클래스 구성중.. 윈도우7의 기본 common control 의 Menu ,Toolbar 컨트롤은 UI가 형편없다. 따라서,KFC 라이브러리에 이 메뉴,툴바 컨트롤 클래스를 추가 작업 진행... kxMenu 클래스라 명명하고,KFC의 확장팩 개념으로 추가될 것이고, 완성되면 조만간,두루에디트에 붙일 예정이고 KFC 라이브러리는 kx 라이브러리로 재명명할 셈이다.. 개발중인 화면 -- 날도 덥고 시간도 없고 잔손이 많이가고 귀찮으면 아무것도 못한다..ㅡㅡ;; Owner Draw 메뉴의 원리는, CNSMenu (자작)라는 MFC 기반 메뉴구현 클래스에 이미 구현 하였듯이, 메뉴가 팝업될 때 WM_INITM.. 2010. 7. 27.
에디트 컨트롤 비밀번호 속성시 툴팁 안나오게 하기 에디트컨트롤 비밀번호 속성시 툴팁 안나오게 하기 How to Disable Password EditCtrl Tooltip on CAPS LOCK ON ES_PASSWORD 가 들어간 비밀번호 속성의 에디트컨트롤이 XP이상(6.0,WINVER 0X0501) 에서 시스템 디폴트로,대문자 키가 눌린경우엔 무조건 툴팁이 나오게 되어 있다. 이것은 오히려 사용자가 입력하려 할때 참 번거롭도록 활성화가 된다. 이것을 찾으려 하니 코드구루에도 코드프로젝트에도 없길래, 필요한 분이 보도록 이곳에 이에 대한 방법을 적고자 함..자 , 이 귀찮은 툴팁을 없애 보도록 하자. 출처:나(http://krkim.net) 우선 CAPS LOCK이 눌리고 ES_PASSWORD 속성을 가진 EDIT 가 SETFOCUS 활성화 되거나,.. 2010. 7. 12.
Visual Leak Detector - vld의 Bug 시간: 오전 7:04 작성자: kkrrrrrrrrrrr #ifdef _DEBUG //#include "vld.h" //Virtual Memory Leak Debug Library 파일공통대화상자(열기,저장)가 안열리고 멈춰있는 버그있다. #endif 이런젠장,난 또 메모리 폴트난줄알고 한참 헤멧네.. vc++ 2008 Team suite SP1 ,windows7(x64), compile 32bit program with SDK. VLD Library cause program halt when call GetSaveFileName(), GetOpenFileName(). I guess it hooks and has somebug with common dialog. Visual Leak Detector - E.. 2010. 7. 9.
[두루에디트 제작기] 정규식(Regular Expression) 검색 구현 출처:나의 다른 블로그 시간: 오후 11:58 작성자: kkrrrrrrrrrrr [작성중인 두루에디트] [작성중인 정규식 명령메뉴] 정규식 검색을 구현했다..ui메뉴 작성중... 정규식은 동시에 여러 단어 검색할때 유용하다. 예를 들어 ET 가 들어가는 단어와 EX가 들어가는 단어를 모조리 한번에 찾고자 할때 E[A-Z] 식으로 사용하며 ETT도 찾고 EXT도 찾으려면 정규식 검색체크박스를 체크하고 E[A-Z]+ 나 E[A-Z]*를 사용하면 된다.^^ 단,파일이 크고 식이 복잡할수록 검색시간이 다소 걸린다. 정규식은 DERegExp 클래스 하나로 구현되었다. 정규식 이외에 기본 검색기능은, vc++ 것과 마찬가지로 빠른찾기,빠른바꾸기,파일에서 찾기,파일에서 바꾸기 등 4가지 기능 화면이 있고 작게로는 다.. 2010. 7. 9.
[두루에디트 제작기] 쓰레드 검색처리시 입력장치공유 2010년 3월 22일 월요일 시간: 오전 7:08 작성자: kkrrrrrrrrrrr 출처:본인(http://krkim.net)의 폭파당한 예전 블로그(http://blog.hanafos.com/yeamaec) 캐시에서 가져옴. 메인창 메인프로세스 쓰레드와는 별도로 생성하여 돌리는 검색쓰레드 내부이다. 쓰레드는 윈도우를 생성한 메인쓰레드의 키보드나 Focus정보를 공유못하도록되어있다. GetFocus등이 null이 리턴된다. 아래는 공유하는 코드이다. DWORD DEFinder::FindAllProc(LPVOID pParam) { BOOL flag = FALSE; DEFinder *pRoot = reinterpret_cast (pParam); DEMainWnd *pMainWnd = (DEMainWnd *.. 2010. 7. 9.
[두루에디트 제작기] WS_VISIBLE 과 SetRedraw와의 관계 인쇄미리보기시 MDI 어플리케이션에서 툴바,MDI client,MDI Child 윈도우 등을 감추고 인쇄미리보기 창을 전면에 띄워야 한다. 이때,MDI Client를 (class name:"MDIClient") Fake 하여 전체 화면을 차지해야 한다. 그런데 툴바나 다른 메인프로그램의 어플리케이션 고유 기능 중 만일 SetRedraw를 하는 경우는 이렇게 ShowWindow(SW_HIDE)나 SetWindowPos(SWP_HIDEWINDOW) 등으로 숨긴 메인프레임의 MDI Client 창이 별안간 WS_VISIBLE 속성이 되살아 나게 된다. 즉,SetRedraw(FALSE) 후 SetRedraw(TRUE) 가 자신의 코드 어디선가 호출된다면,갑자기 숨긴창이 SW_SHOW 될 것이므로 주의해야 한다... 2010. 7. 9.
[KFCWndLib 제작기] 스크롤 윈도우와 인쇄미리보기용 윈도우 클래스 추가 KFCScrollWnd 윈도우 클래스 추가: 스크롤 윈도우(MFC의 CScrollView와 같고 WTL의 CScrollImpl 템플릿 + CScrollWindowImpl과 같은) 윈도우 클래스 (파생된 기본 클래스는 KFCWnd이다) 추가 *KFC 라이브러리의 모든 윈도우 최상의 클래스는 KFCWnd로 시작된다. KFCZoomScrollWnd 윈도우 클래스 추가: 문서내용을 무한대 줌인/줌아웃이 가능하다 WTL의 CZoomScrollImpl 와 같은 기능,MFC에서는 추가 구현해야 하고 딱히 준비된 클래스가 없는걸로 알고있음. 위의 KFCScrollWnd로 부터 파생되었다. KFCPrintPreviewWnd 윈도우 클래스 추가: 프린터 미리보기(인쇄 미리보기) 윈도우이며 확대/축소가 불가능하고 문서창 크.. 2010. 7. 9.
메모리누수감지 라이브러리 [Visual C++] 2007-12-22 오후 4:54:35 http://blog.hanafos.com/yeamaec/29 출처: 코드인카페 원문: CodeProject, Tools, Visual Leak Detector 첨부파일(vldxxxx2005.7z)은 VC++ 2005 버젼에 대한 VLD(Visual Leak Detector) dll과 헤더파일입니다. 2005 버젼 사용자는 첨부파일에 올린 것을 사용하시면 됩니다. 첨부파일(vld-19a.zip)은 VC++ 6.0으로 작성된 소스코드입니다. VC++ 6.0이나 2003 사용자는 첨부파일(vld-19a.zip)을 빌드해서, dll을 만들어내면 됩니다. 사용방법: 1. VLD 라이브러리(.lib)파일을 VC++ 컴파일러가 인지할 수 있도록 해줍니다. 2. 헤더파일(vld.. 2010. 7. 8.