본문 바로가기

김탱 개발자

(48)
Visual Studio 2010 코드 Color, Visual 2015랑 똑같이 변경 Visual Studio 2010을 사용하다가 2015를 사용해보았다.2010은 기본적으로 푸른색 테마+흰배경 코드 편집기인데, 2015는 블랙 테마+어두운 배경 코드 편집기가 default였다.2015 코드편집기 스타일이 너무너무너무 마음에 들어하던 도중..Visual 2010으로 코딩을 하려니, 눈도 아프고 뭔가 이 찝찝한 기분.. 상위버전을 사용하면 하위로 내려갈 수 없다더니 ㅠㅠ 하튼, Visual 2010에 전체적인 테마까진 아니더라도 코드편집기 스타일은 Visual 2015 스타일로 가능하다. 몇가지 필요한게 있지만. https://studiostyl.es/schemes/the-rock-vs2015-dark http://highlighterr.codeplex.com 자세한건 나중에
GDI 문자 자간(간격) 조정 (GDI+는 자간 조정 안됨) 프린트를 할일이 생겨 텍스트를 출력하는데 GDI+를 사용했다 (그래프 도형 품질때문에) 근데 맑은고딕의 기본 문자폭과 자간이 너무 넓어 줄이려고 했더니.. 안된다..열심히 뒤져본 결과 GDI+에서는 지원자체를 하지않는다고 한다. 이유 인 즉, 동일한 품질의 텍스트를 제공하기 위해서라나..하여튼 우회방법으로는 한글자씩 출력하여 MeasureString으로 한글자의 크기를 구해서 자간을 직접 조정하는 방법이 있는데굳이 그러면서 까지 GDI+ 문자출력을 고집할 필요는 없다. 왜? GDI에서 제공하니까..SetTextCharacterExtra() 함수를 이용하면 문자 자간을 조절 할 수있다. 혹시나해서 위 함수로 HDC에 세팅하고 GDI+로 불러와 DrawString 해보았으나, 먹히지 않았다. 문자폭 또한 줄..
Gdiplus 제한적 폰트 인식 Gdiplus로 DC에 글자를 출력하면 GDI를 쓰는것보다 깔끔하게 출력이 가능하다 (안티알리아싱 이용)근데.. Noto Sans CJK 란 폰트를 인식 못하는게 아닌가.열심히 찾아본 결과. .ttf(트루타입) 폰트는 사용이 가능한데, .otf(오픈타입)는 제한적으로 Gdiplus가 사용가능하단다. 더군다나 Windows 10 에서는 정상적으로 출력되던것이 Windows 7 에서는 인식을 못해 기본폰트(맑은고딕)을 가져와서써버려 더 골치가 아팠다.. 왠만하면 Noto Sans CJK 폰트로 사용을 해주고 싶었지만(고객사요청) .ttf 파일이 없는 관계로 다른 비슷한 폰트로 대체하였다. 조심들 하시길.. Graphics ScreenG(pDC->GetSafeHdc()); Gdiplus::Font F(L"No..
OLE DB 소비자 템플릿 일단 Toad로 서버 Connection에 성공했다면 반은 다했다 보통 서버는 보완철통되어 있기 때문에 Toad로 접속되었다는 건 MFC로도 접속이 된다는 소리! 이제 ATL OLE DB Provider Templete을 이용하여 쿼리를 날리면 된다. 작성중
CHttpFile의 GetLength 함수 HTTP protocol을 통해 Json 데이터포맷을 이용하여 데이터를 주고받고 있는데, 데이터를 받는 쪽(클라이언트)에서 data 크기를 받아와 읽어야 한다. 근데 불친절한 서버는 헤더에 Content-Length가 없는 경우, 받는 쪽에서 크기를 구해내야 한다. 이부분에서 멍청하게 삽질을 해서 기억도 할겸 적는다. MSDN : https://msdn.microsoft.com/ko-kr/library/5y092fke.aspx CInternetFile::Read 함수 이용 시 사이즈를 지정해줘야하는데 CInternetFile::GetLength 함수 이놈으로 크기를 받는 수 밖에 없다. (서버에서 Content-Length를 헤더에 붙여 보내줄 경우 고민할 필요가 없음) 근데 이 GetLength()가 ..
OLE DB 연결 테스트 (Oracle) 보통 OLE DB 연결은 C#의 OleDbConnection 클래스를 이용하면 된다.하지만 MFC에서 이용하려면 OLE DB 소비자 템플릿(C++)을 사용해야 한다. MSDN : https://msdn.microsoft.com/ko-kr/library/fk4h509a.aspxMSDN의 사용방법이 자세하게 나와있다고는 하지만.. 보고 바로 적용하기에는 애로사항이 많아이번 프로젝트에서 서버-클라이언트 연결했던 것을 정리해보고자 한다. 렛츠고!! 하기전에..보안관련하여 짚고 넘어가야 할것이 있다.우선 DB서버-클라이언트 간 접속시 여러 방법이 있겠지만 OLE DB로 접속하게되면 여러 보안취약점에 노출이 된다.물론, 수정을 통해 보완이 가능하겠지만, 기본적인 OLEDB 접속방식으로는 보안에 취약하다.몇가지 예를..
if문과 return값 프로그래밍 하다보면 리턴값을 사용하여 에러or정상인지를 보내게 되는데 정말 단순히 생각해서 TRUE = 참 , FALSE = 거짓 으로 정상은 TRUE=1 을 보내고 에러는 FALSE=0 을 보냈었다.. 그리고 그냥 편하게 아래 처럼 쓰곤했는데..if( Function() ) 정상else 에러 문득 다른사람들은 어떻게 쓸까해서 검색해봤더니 틀린건 아니지만 약간 다르게 사용한다.. 보통 아래와 같이 사용한다고 한다. FALSE 0 : 정상 종료-1 : 에러 발생1 이상 숫자 : 정상 종료되었으나, 코멘트 있음-1 이하 숫자 : 에러 발생되었으나, 코멘트 있음 그리고 if( Function() )은 1 일때만이 아니라 0이 아닌 모든값일때 조건이 실행된다. 결과적으로는 if( Function() ) 을 정상..
윈도우의 폰트 선택 기준? 1. GetStockObject()로 얻어오는 SYSTEM_FONT or DEFAULT_GUI_FONT 는 윈도우의 UI 시스템폰트와 다르다?Windows10 기준으로 윈도우의 UI폰트는 '맑은 고딕'이다. 근데 GetStockObject에서 얻어오는 폰트는 '굴림'이다.