본문 바로가기
  • 두루물

C | C++ | VC++36

Visual Studio Porting Error at afxres.h Replace as:: ASIS VS2019 #include "afxres.h"TOBE VS2022 #include "winres.h" 2025. 6. 18.
시세수신과 주문을 분리 SendMessage vs PostMessage 대부분의 증권사(회원사)가 자체API/OPEN API를 제공(시세+주문)하는데, PC나 폰에 설치한 APP의 일부모듈로( DLL이나 구닥다리 OCX나)서브기능을 제공한다.MS-윈도그 기준으로는 시세수신하면 SendMessage()한다.그래서 이곳에서 단순시세수신은 3-5초 딜레이로 내려와서 문제없지만,주문까지 시도할경우는 병목현상으로 거래량폭발,급등락,급강하등 시세종목 한두개가자원을 전부 독차지하고 나머지 시세는 받지도 못한다.(미국장처럼 시세딜레이같이 나중에 쳐내려옴)시세감지해서 주문을 내려면 별도의 로직이 필요하다.그중에 가장심플한것이.아래.아니면 이것도 부족하면 쓰레드로 16개로 돌려야한다.SendMessage(BLOCKING) 윈도우 프.. 2025. 6. 18.
How to Convert MYSQL to SQLite SELECT shtcode,UNIX_TIMESTAMP() - UNIX_TIMESTAMP(update_ts) AS diffsecs,sdate, hname,upname,marketid, marketgb,capital, sigatotal, listing, abscnt,etf, category, bu12gubun, spac_gubun, per, pbrx, t_per, epsrt, bfeps, bfoperatingincome, bfoperatingincome2, high52w, low52w, high52wdate, low52wdate, listdate, uplmtprice, dnlmtprice, openprice, high, low, closeprice, dsign, d.. 2025. 6. 12.
VC++ 정규식검색 여러문자열 단어단위로 까지 체크해야 제대로 검색됨 2025. 6. 12.
MYSQL to SQLite #include "stdafx.h" #include #include #include #include #include "Homi.h" #include "CFGApp.h" #include #include #include #include "MySQLDB.h" #include "DBPool.h" BizCommDB::BizCommDB() { } BizCommDB::~BizCommDB() { } #if 0 int BizCommDB::InsertDailySise(CMySQLDB *pDB2,char *pgmname, char*shtcode, STDSItem hmps) { CMySQLDB *pDB = (pDB2) ? pDB2 : CDBPool::GetLiveDB(); char szquery[1024] = { .. 2025. 6. 8.
주식종목 리스트업(sort) // DlgBookmark.cpp : 구현 파일입니다. // #include "stdafx.h" #include "Homi.h" #include "DlgBookmark.h" #include #include #include #include "HMSiseInfo.h" #include "Common.h" #include "kxNSMenu.h" #ifdef USE_EBEST_API #include "T1102.h" #include "T1101.h" #else #include "T1004.h" #ifdef USE_STOCKLIST_ONESHOT #include "T3086.h" #include "T1001.h" #endif #endif #define SISECOL_DRATE 7 #define SIS.. 2025. 2. 22.
.rc 에서 사용되고 있습니다. 왜? 마소10seKki들은이걸 안고쳐줄가공백한칸만 띄우면되는걸? 코리아 패씽인가 2025. 2. 16.
마소는 visual studio 버그안고치냐 rc 에서 사용되고 있습니다.rc에서 공백 한칸땜시 리소스 빌드 오류말이야done ===== 파일바꾸기,찾기시, 기존의 코드를 ANSI코드로 변경하여 검색하도록 해야함.(한글검색안됨) (DEFinder.cpp의 434줄,FindBuffer) - OK TODO:: FTP 원격 접속 실패시 MRU 파일에서 오픈시 메세지창에 ?? 표시 어떤때 탭바 툴팁이 잘못 표시됨. - OK DONE: 2010.11.20 FTP 권한문제로 접속실패후 일부 서버응답 메세지 깨짐현상 수정 FTP 의 초기 원격 디렉토리에 최근 위치로 이동하는 자동 옵션 추가 탭바 스크롤된 상태에서 문서닫은후 툴팁의 파일경로 매칭오류 수정 문서열고 닫을때,검색할때,파일송수신시 등 치명적 메모리 Leak 문제 FIX 리사이징시 우측 경계창 깜빡거리.. 2024. 12. 19.
외산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)의 탐색시간을 자랑한다.특히,배열이나 레코드 등 내부에서 관리하는 리스트가 대용량일때 빛을 발한다.duruedit 소스코드에서 발췌.샘플   // 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 findv.. 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.