ManagedAudiere의 한글문제

기존 StringConverter 소스가 c++의 char 하나를  c#의 char 하나로 복사해버렸기 때문에.. 파일 주소에 한글이 들어가면 읽지 못하는 상황이 일어났다.. 그래서 멀티바이트를 처리하도록 수정했다.. 밑이 그 소스..

class StringConverter
{
public:
    static std::string ToStd(System::String^ a)
    {
        std::string ret = "";
        array<unsigned char>^ bytes = Encoding::Default->GetBytes(a);
        for (int i = 0; i < bytes->Length; i++)
        {
            ret += bytes[i];
        }
        return ret;
    }
    static System::String^ ToNet(std::string a)
    {
        List<unsigned char>^ bytes = gcnew List<unsigned char>();
        for (unsigned int i = 0; i < a.length(); i++)
        {
            bytes->Add(a[i]);
        }
        String^ ret = Encoding::Default->GetString(bytes->ToArray());
        return ret;
    }
};


참고로 audiere는 lgpl의 오디오 라이브러리이고, ManagedAudiere는 닷넷용 래핑 라이브러리[?]이다.

by kiho | 2006/08/31 17:52 | .NET | 트랙백 | 덧글(2)

VisualStudio 2005 단축키..

자주 쓰는 단축키
자동완성 : Alt + ->
파라미터 목록 : Ctrl + Shift + Space
빌드 : Ctrl + Shift + B
주석처리 : Ctrl + K, Ctrl + C
주석취소 : Ctrl + K, Ctrl + U
한줄삭제 : Ctrl + L
함수만들기 : Ctrl + K, Ctrl + M
이름바꾸기(리팩토링) : Ctrl + R, Ctrl + R
소스 재정렬? : Ctrl + K, Ctrl + F

그외 유용한? 단축키
다음 에러로 이동 : Ctrl + Shift + F12



by kiho | 2006/08/30 00:56 | .NET | 트랙백 | 덧글(2)

MySQL -_ㅜ

완전 짜증...
mysql의 모든 charset를 euckr로 바꿔도
결과가 euckr로 나온다.. 하하

4.1 대로 오면서 뭐 바꼈다는데..
-_-a 버그?

http://kldp.org/node/60250
/etc/mysql/my.cnf 파일의
[mysqld] 부분에
init_connect = SET charset euckr
를 추가해주면 해결된다.

utf8 로케일을 쓴다면 그냥 쓰면 된다..



아아 utf8를 쓰고 싶어도.. ftp 때문에 못 바꾸겠네..

password 함수가 바뀌어서 password를 전부 old_password로 바꿔야 한다기에..
4.0 대 버전으로 다운그레이드 해서 해결..

by kiho | 2006/08/16 03:04 | 리눅스 | 트랙백 | 덧글(0)

로케일 설정..

(젠투리눅스)

/etc/locale.gen
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
ja_JP.EUC-JP/EUC-JP
ja_JP.UTF-8/UTF-8
ja_JP/EUC-JP
ko_KR.EUC-KR/EUC-KR
ko_KR.UTF-8/UTF-8
ko_KR/EUC-KR
en_HK/ISO-8859-1
en_PH/ISO-8859-1
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
es_MX/ISO-8859-1
fa_IR/UTF-8
fr_FR/ISO-8859-1
fr_FR@euro/ISO-8859-15
it_IT/ISO-8859-1

작성후
locale-gen
locales.build -> locale.gen
locales.build 삭제
(locale-gen은 glibc에 포함되어있다.)

/etc/env.d/02locale

LANG="ko_KR"
LC_ALL="ko_KR"

작성후
env-update 실행

by kiho | 2006/08/15 21:58 | 리눅스 | 트랙백 | 덧글(0)

예전서버에서 새서버로 파일복사..

이 복사는 하드 복사가 제일 편하긴 한데...
두 컴퓨터의 하드웨어가 서로 호환이 안되기 때문에 FTP를 쓰기로 했다.

우선 시도한 방법이
새서버에서 FTP 프로그램으로 구서버 접속 -> 한글이 깨져나옴..
ftp 콘솔 프로그램 -> 한글 잘 나옴.. -> 모두받기 안됨...

그래서 생각한 방법이
구서버 -> 제3PC -> 새서버 식의 전송이었는데
전부 다 받고 다시 전부 다 전송하기엔 하드디스크의 여유공간이 부족하기 때문에
파일하나씩 받는대로 바로 새서버로 넘기는 프로그램이 필요했다..
그때 생각난게 FlashFXP였는데 알고 보니 이건 위의 구조가 아니고
제3PC에서 두서버의 정보를 알려주고 두 서버끼리 데이터를 주고 받는 식이었다..
그런데 두 서버 모두 익명접속을 허용하지 않았기때문에.. 성공하지 못했다.. (계정을 지정하는 방법이 없거나 모름..)

그러다가 검색중에 알아낸 방법이 wget를 쓰는 것이었다..
wget 는 인터넷상의 파일을 다운받는 프로그램인데, 이 프로그램에 recursive 옵션을 지원하는 것이다..
그래서 바로 테스트 해봤더니 한글이 깨지지 않고 잘 다운로드 되었다.
그래서 지금.. 모두 다운로드중 -_-a

wget -r ftp://ID:PW@server

by kiho | 2006/08/15 21:10 | 리눅스 | 트랙백 | 덧글(0)

KDE 설치 (2)

오늘 서버를 열어 확인해본 결과.. 부팅후 제대로 로그인 화면이 보이지 않고 콘솔로 다시 빠져나가고 있었다...
xorg의 설정을 제대로 못해서인데.. 인터넷을 여러곳 찾아가면서 결국 성공했다..

우선 nvidia의 드라이버를 설치했는데
http://www.gentoo.org/doc/en/nvidia-guide.xml

emerge nvidia-kernel nvidia-glx 를 설치하고..
커널 설정을 다시 했는데 framebuffer가 기본적으로 꺼져 있어서 잠깐 못찾았었다. (agp가 아니라서 agpgart는 설정못했고)
modprobe nvidia로 모듈을 잡고.. eselect opengl set nvidia (이건 필요없는듯 하지만 그래도 따라했다...)
modules-update
그리고 위 페이지를 보면서 설정파일을 고침..


그 후 startx 했을때 키보드와 마우스를 못 잡는 에러가 나서 웹검색으로 다음을 찾았다.
emerge xf86-input-mouse xf86-input-keyboard
http://72.14.209.104/search?q=cache:4fAj3_hUyOkJ:www.binrev.com/forums/lofiversion/index.php%3Ft20842.html+no+input+driver+matching+%27mouse%27+gentoo&hl=ko&gl=kr&ct=clnk&cd=1
이걸 깔아야된단다..


그냥 참고
http://gentoo-wiki.com/HOWTO_Modular_Xorg

by kiho | 2006/08/15 12:56 | 리눅스 | 트랙백 | 덧글(0)

KDE 설치

대부분 젠투 홈페이지를 따라했다..

emerge kde 로 우선 전부다 깔고..
emerge kde-i18n 로 한글 메시지를 설치..
이때 make.conf에LINGUAS="ko" 를 잊으면 안된다.

이제 rc.conf에DISPLAYMANAGER="kdm" 을 넣고 리붓하면 kde의 로그인 화면이 보인다.
실제로 보이는지는 모르겠고..
내가 vncserver를 깔았기 때문에 vnc로 뜨는걸 확인했다.

우선 vncserver를 실행한다음
vncserver -kill :1 로 프로세스를 죽인다.
그러면 .vnc 디렉토리에 xstartup 파일이 생기는데
이 안에 startkde& 라고 넣으면 vnc로 접속했을때 kde화면을 볼 수 있다.

정리하면
이제 서버에 KDE가 설치됐고, tightvnc를 이용해서
remote로 kde를 사용할 수 있게 됐다.

http://perso.netplus.ch/FCorthay/InstallGentoo/Shortforms/gentoo-kde-2.6.html

by kiho | 2006/08/13 23:58 | 리눅스 | 트랙백 | 덧글(0)

동아리 서버로 젠투 리눅스 깔다.

깔았다. 며칠 됐는데..
기록을 해둘겸 기억을 되살려내어 정리를 해둘까한다.

우선 cpu가 64bit를 지원하기 때문에 gentoo 2006.0 amd64 을 받았다.
amd64는 꼭 amd시퓨를 말하는게 아니고.. amd64 명령어셋을 지원하는 시퓨들(아니면 그 명령어셋)을 말한다고 한다.

우선은 시디로 부팅을 했는데.. 랜이 안잡혀서 고생을 했는데.. 알고보니
랜허브가 gigabit 단위의 랜카드를 지원하지 않아서 되지 않았던 거였다.. -_-;;

설치는 내가 stage1, 2를 해본적이 없었기 때문에 그냥 stage3부터 시작했다.
대부분 매뉴얼을 보고 컴퓨터에 맞게 따라 했는데 간단히 정리해보면..

설치시 네트워크
랜허브의 문제로 처음엔 그냥 CD에서만 설치함..

파티션 나누기
난 boot파티션을 좋아하지 않기때문에
250G짜리 하드 두개를 각각 ext3로 한파티션씩 잡았다.
swap파티션도 생성하지 않았다. (램이 1기가니까... 필요없을거 같기도해서..)
이 때, 하드는 SATA II이기 때문에 hda, hdb가 아닌 sda, sdb로 지정했다.
sda1을 / 로, sdb1을 /home 으로 잡았다.

make.conf
CFLAGS="-march=nocona -O2 -pipe"
MAKEOPTS="-j5"

커널컴파일
LAN카드: RTL8110S 라고 나와있지만, 리스트에 있는 1000bit의 8169 를 선택함.
Native Language Support: euc-kr 추가
이 정도만 기억나네..

이 외엔 다 매뉴얼을 거의 그대로 따라했다.


OS 설치후 설치한 프로그램들..
vim: 편집기 (/etc/rc.conf 에서 기본 편집기로 수정)
apache2: 웹 서버
php5:
mod_php:
mysql:
vsftpd: FTP용
samba: 윈도우 공유
tightvnc: X-window 원격접속

내맘대로 깐 프로그램...
mono: 리눅스용 .net
mod_mono: apache2에서 asp.net
subversion: 소스 컨트롤 프로그램


apache2의 설정
/etc/conf.d/apache2 파일이 설정파일의 APACHE2_OPTS 가 중요
php를 쓸 경우 -D PHP5 추가
asp.net 쓸 경우 -D MONO 추가
-D DEFAULT_VHOST 이건 지워준다..

virtual host 설정
/etc/apache2/vhosts.d 여기 들어가면 파일이 하나 있다.
그 파일의 이름을 바꾸든가 복사한후 원본을 지운다.
편집기로 열어서
<VirtualHost *:80> 이 태그를 감싸는 DEFAULT_VHOST에 대한 IfModule태그? 를 지워주고..
DocumentRoot 등을 적절히 바꿔준다..


나머진 나중에..

by kiho | 2006/08/13 02:10 | 리눅스 | 트랙백 | 덧글(0)

mono, 리눅스에서 .net하기

mono 설치:
gentoo에서 emerge mono

asp.net는
emerge mod_mono 설치후 아파치 설정(/etc/conf.d/apache2)에 -D MONO 추가
virtual host파일에 다음처럼 설정

<VirtualHost *:80>
    DocumentRoot "/var/www"
    MonoApplications default "/:/var/www"
    MonoDocumentRootDir "/var/www"
    <Location />
        SetHandler mono
    </Location>
</VirtualHost>


c# 소스파일 컴파일하기:
mcs 소스파일명
혹은
gmcs 소스파일명

mcs가 C# 1.0의 컴파일러이고, gmcs는 C# 2.0의 컴파일러라고 한다.


실행하기:
mono 실행파일명

by kiho | 2006/08/11 22:54 | .NET | 트랙백 | 덧글(2)

C# 코딩 가이드라인

http://blogs.msdn.com/brada/articles/361363.aspx

Pascal String : 모든 단어의 첫글자만 대문자, 나머진 소문자
camelString : 첫 단어의 첫글자가 소문자

멤버변수, 파라미터, 지역변수명에는 camelString을 쓴다.
그 외에는 PascalString을 쓴다. inteface의 경우 앞에 I 를 붙인다 (예, interface IList {} )

 

C#파일의 구성

namespace MyNamespace

{

    using System;

 

    public class MyClass : IFoo

    {

 

        // fields

        int foo;

 

        // constructors

        public MyClass() { }

 

        // properties

        public int Foo { get { } set { } }

 

        // events

        public event EventHandler FooChanged { add { } remove { } }

 

        // methods

        void DoSomething() { }

        void FindSomethind() { }

 

        //private interface implementations

        void IFoo.DoSomething() { DoSomething(); }

 

        // nested types

        class NestedType { }

 

    }

 

}

 

 

 

 

Nested Type는 되도록 피한다.

Nested Type 혹은 그 생성자가 private 일 경우가 아니면 되도록 밖으로 빼낸다.

 

by kiho | 2006/07/13 01:55 | .NET | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶