본문 바로가기

분류 전체보기

(11)
MariaDB SQL like, join을 같이 사용하면서 속도(performance)가 느릴 때 상황설명1. A, B, C 3개의 테이블이 존재함. 각 각 테이블 행의 개수는 대략 30만개~50만개 정도.2. A 테이블의 제목에서 like '%검색어%'를 사용.3. A, B, C 테이블은 서로 조인을 걸어야 함. 처음 만들었던 쿼리SELECT a.id, a.title, b.text, c.nameFROM A a, B b, C cWHERE a.id = b.id AND b.id = c.id AND a.title LIKE '%검색어%'; 결과는 속도가 매우 느렸다. 원인은 아무래도 like '%검색어%' 특성상 인덱스를 안 타기때문에 발생하는 현상.  like '검색어%'  와 같은 경우였다면 문제는 없었을 것이다. 어쨌든 위 쿼리의 결과가 나오기까지 대략 1분30초 정도 걸리는 문제가 발생함.SELECT..
'/ZI' and '/Gy-' command-line options are incompatible 오래된 프로젝트를 불러올때 종종 보게되는 메시지이다.  Project -> Property -> C/C++ -> Code Generation -> Enable Function-Level Linking 을 Yes로 변경한다
[MFC] 잘못된 인수가 발견되었습니다(An invalid argument was encountered) 한국어로 "잘못된 인수가 발견되었습니다", 영어로 "An invalid argument was encountered"종종 MFC에서 존재하지 않는 리소스(아이콘, 이미지 등)에 접근할때 접하는 에러이다... 그런데 다른경우에도 이 에러가 발생할 수 있다... 그 다른경우에 발생하는 이 빌어먹을 에러 메시지 때문에 며칠을 고생했는지... 상황은 이렇다...소켓으로 유량계와 MODBUS RTU 방식으로 24시간 통신을 하고 있는 상황(시리얼통신이라고 이해해도 좋다)  이틀에 한번꼴로 상기 에러 메시지가 발생한다...재밌는건 저 메시지가 떠있을뿐 프로그램은 정상적으로 동작하고 있다. 물론 난 저런메시지를 뱉도록 코딩한적이 없다...한마디로 왜, 어떤 상황에서 저 메시지가 뜨는지 찾기가 힘든 상황... 배열에서..
[C++] 리눅스(유닉스) 파일목록(하위디렉토리 포함) 구하기 리눅스나 유닉스에서 백업프로그램을 짤때 기본이 되는 파일목록을 구하는 함수이다.아래소스는 하위디렉토포함 파일목록을 구하는 간단한 클래스다. ※VC++, C, C++ 코딩습관이 섞여있어서 미안하다. 그래도 리눅스는 물론이고 유닉스 시스템에서도 무리없이 컴파일 될것이다.#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef map FILE_LIST;class CFileList{public: CFileList(); ~CFileList();public: bool GetFileList(FILE_LIST& list..
CMFCFontComboBox Debug mode Crash(아이콘이 안나옴) 오래된 프로젝트에 CMFCFontComboBox를 사용하려는 경우 Debug 모드에서CMFCFontComboBox::DrawItem의m_Images.Draw(pDC, (pDesc->m_nType & DEVICE_FONTTYPE) ? 0 : 1, ptImage, ILD_NORMAL); 에서 에러가 발생.또는 Release 모드에서 폰트 콤보박스에 폰트의 종류를 구분하는 아이콘을 출력하지 못하는 문제가 발생함. 원인은 m_Images(CImageList)가 이미지 Resource를 가져오지 못해서 발생하는 문제임.즉 m_Images.Create(IDB_AFXBARRES_FONT, nImageWidth, 0, RGB(255, 255, 255)); 의 리턴값이 0(실패)임. 해결방법은Resource View -..
#import is not supported with /MP (compiling source file XXXX.cpp) COM Type Library 사용중에 사용자 이벤트 객체를 생성하고 연결하려고 할때 위와 같은 에러가 발생함. 전체 컴파일 옵션은 당연히 MP(속성창 C/C++ -> General -> Multi-processor Compilation) 가 YES로 설정되어 있었음. 해결방법은 1. stdafx.h 에 #import "OOOO.tlb" 를 추가 2. xxxx.cpp 파일의 속성창을 켜고 C/C++ -> General -> Multi-processor Compilation 을 No로 설정 상기 2가지는 필수로 진행하고 그 밖의 또다른 컴파일 에러는 import 위치를 .h와 .cpp 사이에서 적절히 수정해준다.
[C++/MFC] WinInet FTP Client Class 예전에 다음 블로그를 이용할때 올렸던 FTP 클라이언트 클래스이다. 프로젝트가 VS2017, 2022에서 안열리기에 조금 수정을 했다. 내용에 변화는 없다. 인터넷 찾아보니 내 글을 퍼가신 분들이 계시는데 여기가 이제 원조다. 처음 작성일이 2010. 5월 이라니. ================================================================================= 가끔씩 간단한 업데이트 프로그램을 작성할때 FTP를 이용하곤 하는데... 막상 WinInet FTP API를 이용해서 개발을 하다보면 손이 많이갑니다. 특히 UTF8 인코딩 문제는 상당히 귀찮습니다 (어떤서버(알FTP)는 UTF8을 지원하지 않는 반면 또 어떤 서버(파일질라)는 UTF8만을 지원하기..
VS2022 unresolved external symbol ___std_min_element 외부에서 가져온 라이브러리에서 컴파일 중에 unresolved external symbol ___std_find_trivial_1@12 unresolved external symbol ___std_min_element 이러한 에러가 났다면 Property -> Configuration 에서 Platform toolset 을 Visual Studio 2022(v143) Windows SDK 버전을 최신으로 변경해본다.