본문 바로가기

code

(16)
SHCC - Syntax Highlighter Code Converter TiStory 에 Syntax Highlighter 스크립트를 이용해서 코드를 올리가 점점 어려워 지고 있습니다. 아마 TiStory 자체의 CSS 나 내부 코드에 따른 정책 변화 등에 의한 여러가지 요건이 문제가 되는 듯 합니다만 .. 일일히 많은 코드를 일일히 변환 하기도 어렵고 해서 간단히 프로그램을 만들어 보았습니다. 이름은 SHCC 로서, 소스파일이나 클립보드에 있는 내용을 탐색기에서 끌어다 놓거나, Ctrl+V 로 붙여 넣기 하면 자동으로 여러 형태로 만들어 줍니다. 로 완성 되는 형태나, 로 처리 되는 방법 두가지 모두 지원하며, TiStory 에서 주의 해야 하는 < 를 < 로 바꿔 주도록 한 부분도 추가 되었습니다. 그래서 아래 코드가 ... #include #include #includ..
RageDCMV , Free DCM read/write library for standard C++ DCM 파일을 읽고 쓰는 라이브러리를 공개 합니다. 이 소스 코드는 제가 직접 만든 것이며, 누구나 사용하고 활용 할 수 있되, 이 코드에 대한 저작권만 지켜 주신다면 아무런 제한없이 사용할 수 있습니다. 단, 저작권을 벗어난 권리행사 외에는 어떠한 책임을 지지 않으며, 본 소스코드로 제작하신 바이너리나 코드에 대해서는 일절 support 가 가능하지 않음을 먼저 알립니다. source code 는 gcc 에서 빌드 되도록 만들어 졌으며, CodeBlocks 10.05 에서 project 파일이 생성 되었습니다. 32bit, 64bit, MBCS, Unicode 모두 감안하여 만들어 졌습니다. 사용법이나, 활용에 대해서는 main.cpp 를 참조하시기 바라며, 개선하거나 변경 한 소스에 대해서는 반드시 ..
리눅스용 비동기 소켓 서버 (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 로 만들어 졌습니다. 첨부 파일의 소스를 사용할 수 있으니 필요하신 분은 사용해 보시기 바랍니다. 본 소스는 공개로 만든 것 이므로 ,이 코드로 인해 발생하는 문제점은 제가 ..
블로그에 코드를 넣고 syntax highlighter 를 적용하자. 제 블로그만 그런것이 아니고 대부분의 컴퓨터 언어를 다루는 블로그들이 자신들 만의 코드를 블로그상에 올릴때 대부분 사용하는 것이 바로 Syntax Highlight 기능 입니다. 이건 블로그 자체에서 구현된 것이 아니라 별도의 자바스크립트를 붙여야 구동이 가능하죠. 아주 예전에 구글에서 돌던 코드를 붙여서 사용하다가 얼마전에 새로운 버젼으로 갈아타게 되었는데요. 그걸 티스토리에 적용하는 방법을 알아 보도록 하겠습니다. 먼저 제작자의 홈페이지에서 해당 소스를 다운로드 받습니다. 상용으로 사용하지 않을 경우 제제는 없습니다만, 자신이 쓰는데 도움이 되었다면 1달러 이상 기부 할 수 있습니다. 다운로드 받으면 LGPLv3.txt 및 test.html 과 scripts , src, styles 폴더가 보입니다...
[주절거림]원호 그리기 ... 원호를 그리는 것은 부동소수점이 지원되는 플랫폼에서는 어렵지 않은 일 입니다만, 만약 FPU 가 없이 ALU만 있는 CPU 에서 처리 한다는 것은 꽤 어려운 일이 아닐수가 없습니다. 원호를 그리는 것에 있어서 ALU 로 그리게 하는 방법 중 하나는 cos(), sin() 등의 특정 FPU 연산 결과를 이미 index 로 가지고 있는 방법이 있을 수 있겠습니다. 예를 들면 ... static const WORD SIN_10[360] = { 0, 18, 36, 54, 71, 89, 107, 125, 143, 160, 178, 195, 213, 230, 248, 265, 282, 299, 316, 333, ... }; 와 같이 미리 계산된 고정된 수에 대한 integer 값들을 가지고 있는 것이 한 방법 이겠..