본문 바로가기

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 구현 클래스로 아무런 작업을 하지 않음.. 더보기
프로그래밍 언어 사용 비율 프로그래밍 언어 사용 비율을 표시한 인덱스 차트 작성자: ospace114 @ naver.컴 앞의 자료는 절대적인 자료는 아니다. 흥미로운 것은 순위이다. 최근(07년12월)에는 Java > C > (Visual)Basic > PHP > C++로 상위 5위가 좀 바뀌었다. 성향을 보면 최근 일반 프로그래밍 언어가 하향세를 보이고 있으면 스크립트 언어가 상승하고 있다. 물론 이런 형상은 2004년도에도 발생했지만 전체적인 모습은 하향세를 보이고 있다. 그러나 Perl는 예외적으로 힘을 쓰지 못하고 있다. 아무튼 많은 의미를 담고 있는 차트이다. 2007년 12월 12일 그냥 그적거리는 Ospace 위의 자료는 최근 자료를 업데이트 했다.(2009.11.13) 2010년 9월 2010년 되면서 거의 대부분 .. 더보기
Oracle에서 MS-SQL로 포팅 Oracle에서 MS-SQL로 포팅 작성자: Ospace(ospace114@empal.com) 작성일: 2007.11.07 아래 내용은 주로 프로시저(procedure)에 대한 내용이다. 먼저 두 SQL간에 프로시저 형식을 보자 -- Oracle CREATE OR REPLACE PROCEDURE myStoredProcedure ( AGE NUMBER IN, AGEO NUMBER OUT) IS BEGIN ... END -- MS-SQL CREATE PROCEDURE myStoredProcedure @age int, @ageo int OUTPUT AS BEGIN ... END 변경사항 CREATE OR REPLATE --> CREATE 프로시저 처음 선언 부분이 조금 차이가 있다. 둘다 비슷한 성격이다. -.. 더보기
MSN 메신저에서 채팅 절차 이글은 http://www.tlsecurity.net/Textware/Misc/draft-movva-msn-messenger-protocol-00.txt의 내용을 간단하게 번역한 내용입니다. 역자: Ospace(ospace114@empal.com) 일자: 2007.12.05 MSN메신저에서 인스탄스 메시징은 세션기반으로 작동합니다. 대화를 하려는 사람들은 세션을 생성해야 대화를 할 수 있다. 우리는 채팅하려는 사용자와 채팅 세션을 시작하기 전까지는 메시지를 송수신할 수 없다. 이를 위한 기본적인 두가지 메소드는 다음과 같다. -. 사용자는 다른 사용자에게 채팅 세션 요청을 보낸다. -. 사용자는 다른 사용자로 부터 채팅 세션 요청을 받는다. 사용자는 채팅세션을 요청을 송신 사용자는 서버에게 SwitchB.. 더보기
Java thread에서 IllegalMonitorStateException 예외 발생문제 Java thread에서 IllegalMonitorStateException 예외 발생문제 작성자: ospace114 @ naver.컴(07.11.28) 자바는 개발자에게 상당히 편한 환경을 제공한다. 왠만한 기능들이 쉽게사용하도록 제공하기 때문이다. 그리고 상당히 많은 제약을 제공한다. 그중에서 쓰레드 사용에 있어서 제약사항중에 IllegalMonitorStateException 예외를 보도록 하겠다. 예외가 발생할 수 있는 상황은 매우많다. 그렇기에 특수한 상황일 경우에 대해서 살펴보겠다. 이번 예제는 ThreadA와 ThreadB가 있고 ThreadB가 ThreadA에서 메시지 처리 요청을 보내는 상황이다. 이를 코드로 구현하면 다음과 같다. import java.util.Vector; public.. 더보기
윈도우 애플리케이션 제어 아래는 C#을 이용해서 윈도우 애플리케이션(메신저)을 제어하는 예제코드이다. 재미있기때문에 한번해보길 바란다. 잘만하면 다양한 응용방법이 나올 수 있다. 대충적인 그림은 윈도우 애플리케이션(이하 메신저로 간주)를 다른 프로그램에서 임의의 버튼을 클릭하거나 마우스 조작을 하거나 특정 입력이 하여 작업을 수행하게 한다. 아래 코드는 C#으로 되어 있지만 기본적으로 Win32 API를 이용했기 때문에 다른 곳에서도 응용해서 실행할 수 있다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Wi.. 더보기

반응형