언어&프레임워크

    [초보] C# C에서 쓰던 typedef 및 #define 사용하기

    C/C++에서는 이것 많이 사용하였습니다. 편하니까 그런데, C#에서는 이런거 절대로 용납이 안되더군요 ㅎㄷㄷ 그리하여 동일한 방법으로 써 보도록 하지요... 1. typedef 형태의 structure e.g. C/C++ typedef struct _header_ { unsigned char id; unsigned char number; unsigned short packet_length; unsigned short data_length; } HEADER; 이런식으로 표현하는데 C#에서는 어떻게 쓸까? 기본이 되는 namespace에서 멤버로 지정합니다. private struct HEADER { public Byte id; public Byte number; public UInt16 packetLen..

    윈도우 버젼 확인하는 방법(C#)

    Checking file versions is surprisingly hard. I was wandering around the web the other day and ran into this post. In general I don’t have many issues with the post, until you get to the bottom of the article. The author mentions that his code only runs on Win7 or newer so he helpfully included a check to make sure that his code only runs on WIn7: // Example in C#. internal bool SupportsTaskProgr..

    윈도우 버전 알아내기(64비트 포함)

    +----------+------------+-------+-------+ | Version | PlatformId | Major | Minor | +----------+------------+-------+-------+ | Win95 | 1 | 4 | 0 | | Win98 | 1 | 4 | 10 | | WinME | 1 | 4 | 90 | | WinNT351 | 2 | 3 | 51 | | WinNT4 | 2 | 4 | 0 | | Win2000 | 2 | 5 | 0 | | WinXP | 2 | 5 | 1 | | Win2003 | 2 | 5 | 2 | | WinCE | 3 | ? | ? | | WinLH | 2 | 6 | 0 | +----------+------------+-------+-------+ ..

    DVK270

    커널 패치 및 포팅 1. CD에서 linux-2.6.12.tar.gz 파일을 복사한다 cp /mnt/cdrom/source/kernel/linux-2.6.12.tar.gz /working 2. 압축 풀기 tar xvfz linux-2.6.12.tar.gz 3.XM-DVK270패치 포팅 cp diff-linux-2.6.12-xm_dvk270_p1.gz /working/linux-2.6.12 mv linux-2.6.12 linux-2.6.12-dvk270 zcat diff-linux-2.6.12-xm_dvk270_p1.gz | patch -p1 4. 오브젝트 파일 복사 cp /mnt/cdrom/source/kernel/pathch/driver_obj/otg242.elf drivers/usb/host/otg2..

    안드로이드 커널 올리기

    SD카드로 비글보드 Android 부팅을 위해서는 커널이미지와 Android root file system이 필요하다. 커널 소스와 Android 소스를 ubuntu 상에서 빌드하고 생성된 이미지들을 SD카드에 복사를 해야 한다. 우선 복사하기 전에 Android 소스를 받을 폴더를 생성한다. $ cd ~ $ mkdir –p ~/Project/mydroid 1. Tool 설치 (1)ARM compiler 설치 - 컴파일러 다운로드 http://www.codesourcery.com/downloads/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi.bin - 컴파일러 설치 (전체 설치할 것) $ sh arm-20..

    안드로이드 전체 소스 코드 빌드 방법(우분투)

    안드로이드 전체 소스 코드 빌드 방법 먼저 안드로이드 소스를 빌드하기 위해선 리눅스 ubuntu 환경을 만드는 것이 바람직할 듯 합니다. 구글도 ubuntu 를 추천하고 있기 때문이고, 다른 package 사용하면 리눅스 초보자의 경우 작업이 힘들 수 있을 것으로 보입니다. 가급적 우분투를 사용하시기 바랍니다. 그럼 이제부터, 제가 build한 절차를 os 설치에서 부터 순차적으로 설명드리도록 하겠습니다. 최종적으로 모두 build하기 까지 꽤 많은 시간이 소비되니 충분한 시간을 가지고 빌드하시기 바랍니다. 1. 리눅스 Ubuntu 패키지 설치. 전 참고로 ubuntu-8.04.1 desktop-i386을 사용하였음을 알려드립니다. - 먼저 아래의 url에서 우분투 iso 이미지를 얻으셔서 리눅스 설치 ..

    기초 - Indroduction

    기초 - Indroduction

    요즘 진행하는 프로젝중에 DirectShow를 사용하는 프로젝이 있어서 스터디중입니다. DirectShow에 대해 소개하는 글을 계속 올립니다. 역사니 뭐니 하는건 다 생략하구... 개념부터... - Filter, Filter Graphs DirectShow의 기본 빌딩 블럭은 filter라 불리는 콤포넌트이다. 필터는 멀티미디어 스트림을 어떤 연산을 해서, 내용을 변화시킨 후 출력해 주는 콤포넌트라 할 수 있다. 예를 들면 파일을 읽는 필터는 HDD에서 파일을 읽어서, 해당 파일을 스트림으로 만들어서 출력으로 내놓게 된다. 디코더나 출력장치로 출력하는 콤포넌트도 DirectShow에서는 필터라 부른다. DiretShow에서는 이런 필터를 연결해서 필요한 작업을 진행한다. 예를 들어 파일필터의 출력을 디..

    File Play

    이 예는 MSDN에 나온 샘플 DirectShow어플리케이션이다. 앞에서 말했던 DirectShow 어플리케이션 작성의 4가지 스텝을 다시 기억해 보자. 필터그래프 매니저의 인스턴스 생성 매니저를 이용해서 필터 그래프 생성 매니저를 이용해서 필터그래프에서 데이터를 처리하도록 함 사용이 끝나면 리소스 반환 1. 인스턴스 생성 앞에서 이야기했듯이 매니저나 필터 모두 COM객체이기 때문에, 우선 COM라이브러리를 초기화 해야 한다. 이 작업은 CoInitialize를 호출함으로써 이루어진다. HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) { // 에러처리 코드(간단하게 하기 위해 생략) } 에러처리는 생략했으며, 필요한 분은 COM책을 들여다 보시면 다 있다. (참고로..