본문 바로가기

Windows 메시지 인자(Param) 처리시 사용하는 매크로 Windows 메시지 인자(Param) 처리시 사용하는 매크로 작성자: 박재성(ospace114@empal) 작성일: 2008.04.25 Windows에서 Win32이든지 MFC이든지 메시지 처리는 값을 받는 인자가 있다. 바로 WPARAM와 LPARAM이다. 다음은 이를 처리하기 위한 매크로이다. 이는 단지 정리 목적이지 자세한 설명을 위한 것은 아니다. #define LOWORD(l) ((WORD)(l)) #define HWORD(l) ((WORD)(((DWORD)(l)>>16) && 0xFFFF)) #define LOBYTE(w) ((BYTE)(w)) #define HBYTE(w) ((WORD)(((WORD)(w)>>8) && 0xFF)) #define MAKEWORD(a, b) ((WORD)(((.. 더보기
ACM 오디오 프로그래밍 ACM 오디오 프로그래밍 작성자: 박재성(ospace114@empal.com) 편의상 평어를 사용하겠습니다. 제발 돌은 던지지 마세요. ㅠ.ㅠ 이자료를 어떤 분이 퍼가실지 모르지만, 퍼가실때에는 출처를 밝혀주세요. 윈도우 환경에서 오디오 프로그래밍은 쉽지가 않다. 쉽지가 않다고 하는 것은 비디오나 이미지에 비해서 어렵다는 이야기이다. 보통 비디오라고 하면 DirectShow 기반으로 개발하며, 간혹 다른 것도 사용하지만.. 이미지하면 GDI나 DirectDraw등을 이용하게 된다. 혹은 다른 이미지 라이브러리를 사용... 오디오 역시 DirectShow 기반으로 하면 되지만 ACM)Audio Compression Manager)이라는 SDK가 있다. 이곳에서 오디오 인코딩, 디코딩 및 여러 효과를 적용할.. 더보기
5. Lua 메타테이블(metatable) 5. 메타테이블Writer: ospace114@empal.com, [http://ospace.tistory.com/테이블의 제한점루아에서 테이블은 중요한 자료형이다. 루아에서 대부분의 작업이 이 테이블을 통해서 이뤄진다. 그러나 이러한 테이블 사용에도 한계가 있다. 예를 들어 테이블 간의 비교과 연산은 불가능하다.a = b + c --b와 c는 테이블이러한 테이블의 제한점을 극복할 수 있는 것이 메타테이블이다. 이를 이용해서 테이블의 기능을 변경할 수 있다. 즉 테이블간의 덧셈연산도 가능하며 필요시 다른 작업으로 치환해서 사용할 수 있다.메타테이블 정보 출력루아에서 테이블들은 각각 자신만의 메타테이블을 가지고 있다. 사용자 데이터 역시 메타테이블을 가지고 있다. 루아에서 기본적으로 메타테이블 생성 없이 .. 더보기
Lua 5.x와 Lua 4.0 호환성 Lua 5.x와 Lua 4.0 호환성 ospace114@empal.com (작성일 08.01.21) Lua 4.0과 Lua 5.x와 완변한 호환성이 제공되지 않는다. 버전 5.x로 업그레이드 한다면 다음 사항을 주의하길 바란다. 언어에서 변경된 내용 모든 tag메소드가 메타테이블로 대치되었다 괄호 사이에 있는 함수는 반드시 값 한 개만 반환해야한다 목록 형태의 생성자에서 마지막 항목에 있는 함수(예를 들어 {a, b, f() })에서 반환 값은 목록 맨뒤에 차례로 추가된다. or의 우선순위가 and 우선순위보다 낮다 in, false, true은 예약어이다 예전 생성 형태인 for k, v in t(여기서 t는 table)은 제거되었다. (아직까지는 지원되지만 가급적이면 for k,v in pairs(t.. 더보기
4. Lua의 조건문 반복문 4. Lua의 조건문 반복문ospace114@empal.com (작성일: 080121)Lua에서 조건문과 반복문 종류는 총 4가지로 단순하다. 조건문은 if문이 있으며 반복문으로 while, repeat와 for문이 있다. 가장 많이 사용하는 명령어로만 단순화 시켰다.물론 상황에 따라서 코딩을 최적화시켜서 깔끔한 코딩 스타일이 안될 수도 있지만 반면에 단순함에서 오는 장점도 있다.IF 조건문if문은 비교 조건에 따라서 참과 거짓으로 구분되어서 실행되는 명령문이다. 비교 조건은 앞에서 다룬 연산자중에서 비교연산자 부분을 참조하면 된다.내용은 어렵지 않기 때문에 다음의 간단한 예를 보고 넘어 가겠다. 혹시나 해서 말하지만 if-else 구문에서 if 조건문이 참인 경우는 then이하의 명령을 실행하고 els.. 더보기
COM객체 regsvr32 등록시 DllRegisterServer실패 0x80000003에러 작성자: Ospace(ospace114@empal.com) 적성일: 08.01.10 프롤로그 COM객체를 작성하면서 짜증나는 부분이 COM객체 등록 부분이라 할 수 있다. 적어도 나는 그렇다. 특히 regsvr32에 의해서 COM객체 등록시 왜 이렇게 안되는 경우가 많은지, 어떤 에러인지 메시지만으로 알기 어려워서 더욱더 짜증나게 만든다. 여하튼 최근 DirectShow 필터를 작성해서 등록해서 잘 사용하고 있었다. 다시 필터 내부에 데이터 체크 부분을 보강하여 다시 빌드해서 사용하는데는 문제가 없었다. 이렇게 자주 COM 객체를 빌드해서 테스트 할때 regsvr32에 의해서 매번 해제와 등록 작업하는 것은 번거롭다. 그렇기에 한번 등록해두면 레지스트리에 해당 COM객체에 대한 절대위치 정보가 저장된다... 더보기
문자열 이야기(작성중) 문자열 이야기 작성자: Ospace(ospace114@empal.com) History 080109 ospace 최초작성 제가 Windows 환경에서 개발하면서 가장 골치아픈 자료형이 문자열이다. 다른 자료형은 정수형과 실수형이고 값의 범위 정도만 알면 충분하다. 같은 형태 자료형이면 공통된 범위에 속한 값이면 쉽게 변환이 가능하고 사용할 수 있다. 그러나 문자열은 다르다. 물론 문자열 자체가 기본 자료형이 아니기 때문에 더욱더 그렇다고 볼 수 있다. 먼저 문자열 자료형의 종류를 살펴보고, 이들간의 변환을 살펴보겠다. 대부분의 내용는 MSDN를 참고했으며, 그외에 나름대로 시행착오로 만들어졌다. 그 다음으로 문자열간의 변환 방법을 알아보겠다. 마지막으로 문자열 관련 팁을 몇가지 넣도록 하겠다. 문자열 자.. 더보기
SLF4J simple tutorial 공식홈페이지: http://www.slf4j.org/ Simple Logging Facade for Java (SLF4J)라는 다양한 log api에 대해서 간단한 facade를 제공한다. 즉, 다양한 log library를 하나의 객체로 통합해준다. 유명한 log4j, JDK, JCL 등의 log library를 따로 관리할 필요없이 slf4j로 관리가 가능하다. 작성자: Ospace(ospace114@naver.컴), 2008.12.18(목) 그럼 사용해보자. 지금 사용할 slf4j의 jar파일은 다음과 같다. slf4j-api-1.4.3.jar: facade 인터페이스 제공. 기본적으로 포함될 클래스 라이브러리 slf4j-nop-1.4.3.jar: facade 구현 클래스로 아무런 작업을 하지 않음.. 더보기

반응형