본문 바로가기

코드

(8)
SHCC FLTK version 0.3.2.10 업데이트 서두 이전의 SHCC 를 떠올리며 급히 C++ 로 만들었던 0.3.0.4를 좀 더 알차게 수정을 했습니다. 이제 마지막에 선택 했던 언어 클래스와, 윈도우 위치등을 기억 하도록 만들어 졌으며, 이는 계속 OpenSource repo. 에 최신버젼으로 갱신되고 있습니다. 현재 최신버젼은 0.3.1.8 입니다 0.3.2.10 입니다. 변경 사항FLTK 1.3.4-1 의 ABI VERSION 을 10303 으로 설정하고 빌드, Editor 기능을 좀 더 사용할 수 있도록 했습니다.제가 직접 추가한 flat scheme 을 적용하여, 근래 Windows 10 이 추구하는 있는듯 없는듯 뭔가 단순한 형태로 만들었습니다. 전체 디자인을 변경 했습니다. 위 FLTK 버젼 이유로, Text Editor 의 라인 수 가..
MinGW-W64 용 DirectInput 소스 (키보드,마우스,조이스틱) MinGW-w64 프로젝트 부터 DirectX 관련 SDK 가 포함 되어 있으므로 윈도우 어플 개발에 매우 편리함을 얻을 수 있습니다만, MFC 처럼 뭔가 꽁꽁 묶여져 있는거 찾기가 사실 어렵다 보니 직접 만들어 써야 하는게 많은건 사실 입니다. 대신 쾌적함을 얻을 수 있는건 덤 이지만 ... 그래서 제가 진행 중인 프로젝트 중에 DirectX 의 2D, input 을 가져다 쓰면서 좀 더 편리하게 써 보고자 만들었던 것을 공유 하고자 합니다. 사용은 간단 합니다. 먼저 현재 사용되는 윈도우에 생성 부분 쪽에 InitDirectInput() 를 사용하여 Dinput 을 초기화 합니다. 이떄 반환되는 값은 HRESULT 가 아니라 DXINPUT_INIT_RESULT_KEYBOARD, DXINPUT_INIT..
EnCypher tool (AES256, BASE64) C++ library w/ Sample. EnCypher 라고 이름은 거창 하긴 합니다만, 단지 AES-256 과 BASE-64 를 이용하는 Front-end c++ class library 에 막 가져다 붙인 이름 입니다. 용도는 AES-256 으로 암호화 한 정보를 다시 BASE-64 로 인코딩 한 문자열을 만들거나, 반대로 처리 하는걸 만들수 있습니다. 사용하려는 C++ 코드 위에 #inlcude "endetool.h" 를 추가 해 준 다음, EnDeTool class 를 할당해서 쓰면 됩니다. 여러 기능을 제공하고 있는데 주된 기능은 다음과 같습니다.문자열을 AES-256 과 BASE-64 로 암호화 또는 복호화 단순 데이터를 AES-256 으로 암호화 또는 복호화 아래의 소스코드는 바이너리 데이터를 암호/복호화 하는 것만 들어 있긴 합..
SHCC - Syntax Highlighter Code Converter TiStory 에 Syntax Highlighter 스크립트를 이용해서 코드를 올리가 점점 어려워 지고 있습니다. 아마 TiStory 자체의 CSS 나 내부 코드에 따른 정책 변화 등에 의한 여러가지 요건이 문제가 되는 듯 합니다만 .. 일일히 많은 코드를 일일히 변환 하기도 어렵고 해서 간단히 프로그램을 만들어 보았습니다. 이름은 SHCC 로서, 소스파일이나 클립보드에 있는 내용을 탐색기에서 끌어다 놓거나, Ctrl+V 로 붙여 넣기 하면 자동으로 여러 형태로 만들어 줍니다. 로 완성 되는 형태나, 로 처리 되는 방법 두가지 모두 지원하며, TiStory 에서 주의 해야 하는 < 를 < 로 바꿔 주도록 한 부분도 추가 되었습니다. 그래서 아래 코드가 ... #include #include #includ..
리눅스용 비동기 소켓 서버 (Async Socket Server) 소스 이 소스는 소켓 서버를 돌리기 위해 만든 소스 입니다만, 최초 제가 구한 것도 인터넷이고 (원래 만든 분이 누군지 모르겠습니다) 잘 주워다 지금 쓰고 있느라, GPL 에 따라 소스를 공개 합니다. 혹시 이 소스의 원작자가 되시는 분이 이 소스에 대해 권리를 주장하신다면, 내리도록 하겠습니다 ^^ 소스의 다운로드: 필요 사항: 이 소스를 컴파일 하기 위해서는 POSIX 를 준수하는 컴파일러가 필요하며, Cygwin 에 있는 gcc 나 (minGW 는 불가), 리눅스 자체의 gcc 에서 컴파일이 가능 합니다. 사용 예제: 이 소스는 현재 AsyncSock 과 SocketWrap 이라는 부분으로 나뉘어져 있습니다. SocketWrap 이라는 부분이 Sock 을 Class 로 좀 더 쓰기 편하게 만들어 져 있고..
일반 문자열을 바이너리형태의 문자열로 변환 하고 다시 역변환 하기. 일부 프로그램들이 serial key 들을 16진수 값으로 받아서 처리하거나 하는 경우를 보신 분들이 계실 것 입니다. 이런 경우, 사람이 알아 볼수 있는 일반 ASCII 값으로 바이너리(16진수) 를 받아서 다시 원본 데이터로 변환 하는 경우 입니다. 회사 프로젝트에서 필요한 부분이 있어서 급하게 만든 코드인데, 나름 쓸만한 것 같아 공유 합니다. 길이 검사 등은 안 되어 있으므로, 재량껏 개조해서 마음대로 쓰세요 !
socket 의 recv() 는 항상 원하는 크기대로 오지 않는다 ! 이전의 버퍼를 다 받아 오지 않던 문제를 ... 그간 PC 에서 socket processing 하던 편리함에 빠져 그 근본을 잊었던 것 같습니다. 임베디드 보드가 지속적인 메모리의 malloc() 과 free() 때문인지 죽어 버리는 문제가 발생 하지만, 적어도 30MB 의 데이터를 지속적으로 500번 가량 전송 하는데 성공을 했습니다. 이유는 간단히, recv() 함수가 가진 특성을 그간 간과 했기 때문 입니다. socket 에서 recv() 로 원하는 크기가 다 넘어 오지 않는다. 이 사실을 제가 간과 하고 있었네요. 너무나 기초적인 부분인데, 어찌 이런걸 제가 그간 잊고 있었을까요? 그래서 코드를 다음과 같이 수정 하였습니다. int nRecvSize = 0; bool bRecvDone = fal..
MinGW 환경 C++ 에서 Thread 간편히 쓰기 위한 CustomThread 클래스! MinGW 으로 C++ 컴파일 해서 쓸시 , thread 처리를 위해 extern"C" 남발을 했던 기억이 있습니다. 아련한 기억인데 .. C++ 로 class 객체화를 하는데 있어 , thread 의 stdcall 함수 제작은 귀찮음의 걸림돌이 되었다고 생각 됩니다. 그래서 만들었던 것이 바로 이 CustomThread !!! 클래스 원형을 보면 다음과 같습니다. 그리고 실제 사용하는 입장에선 위의 클래스를 상속 받아, Setup 과 Execute(void*) 를 구현해 주면 되는 것 입니다. 예) 예제 소스는 CodeBlocks 로 만들어 졌습니다. 첨부 파일의 소스를 사용할 수 있으니 필요하신 분은 사용해 보시기 바랍니다. 본 소스는 공개로 만든 것 이므로 ,이 코드로 인해 발생하는 문제점은 제가 ..