Shock Sticker



깔끔한 UI
사용하기 쉬운 단축키
휴지통기능 등..

괜찮은 포스트 잇..~

간단한 사용법

Ctrl+Alt+N (new)
Ctrl+Alt+H (Hide)
Ctrl+Alt+S (Show)

단축키는 요정도만 알아도 사용에 무리가 없다네~~


아래는 스샷~
사용자 삽입 이미지

'개발' 카테고리의 다른 글

프로세스의 메모리 사용량가져오기  (2) 2007.09.27
TCP/IP wouldblock 처리  (1) 2007.07.27
Shock Sticker  (1) 2007.07.12
SciTE Editor 한글화하기..  (2) 2007.07.03
RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
이거보고  (0) 2007.06.26

Trackbacks 0 / Comments 1

  • oz 2007.07.12 17:56 신고

    알바 즐~

Leave Comments

SciTE Editor 한글화하기..

ruby때문에 알게된 에디터인데...한글화부터 시작해야겠지?

가장 먼저..
http://scintilla.sourceforge.net/locale.ko_KR.properties 
에 가서 익스플로러에 뜬 화면을 좌~악 긁어서 locale.properties라는 이름으로
scite.exe 파일이 있는곳, 그러니까 통상적으로  ruby패키지를 인스톨했다면

사용자 삽입 이미지

그림과 같은 곳에 저장한다.









그리고 scite실행!!  

바로 한글화 되어 나오기는 하지만, 먼가 좀 문제가 있어보인다..

썻던 한글을 백스페이스 두번에 걸쳐 지워야 하며 한번만 누른다음 다음글을 쓰게 되면 모든 글자들이 쫙쫙 깨지게 된다. 유니코드 바이트 특성을 제대로 인지하고 있지 못해보인다.


자, 이제..
Scite가 설치된 폴더에서 SciTEGlobal.properties 파일을 열어서
Ctrl+F 로 "Internationalisation" 필드를 찾아 간다.
기본적으로 아래와 같이 되어 있을것이다.

# Internationalisation
# Japanese input code page 932 and ShiftJIS character set 128
#code.page=65001
#character.set=128
# Unicode
#code.page=65001
#code.page=0
#character.set=204
# Required for Unicode to work on GTK+:
#LC_CTYPE=en_US.UTF-8

이 부분을  아래와 같이 고쳐보자.

# Internationalisation
# Japanese input code page 932 and ShiftJIS character set 128
#code.page=932
#character.set=128

# Unicode
#code.page=65001
code.page=949
#character.set=129

# Required for Unicode to work on GTK+:
#LC_CTYPE=ko_US.UTF-8
#output.code.page=65001

그리고 다시 SciTE 를 실행해 보면 한글이 깨지지도 않게 된다.

사용자 삽입 이미지

'개발' 카테고리의 다른 글

TCP/IP wouldblock 처리  (1) 2007.07.27
Shock Sticker  (1) 2007.07.12
SciTE Editor 한글화하기..  (2) 2007.07.03
RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
이거보고  (0) 2007.06.26
do not appear this message  (0) 2007.06.25

Trackbacks 0 / Comments 2

Leave Comments

RFI(Request For Information)를 누가 작성하는걸까.

RFI(REQUEST FOR INFORMATION)는 컨설팅을 발주하기전에 기업에서 컨설팅업체에게 어떤 컨설팅을 받으면 좋을지에 관해서 "사전문의"를 하거나 "RFP"작성 대행을 받는것을 말합니다.

특히 이러한 RFI는 업체들에게 발주하는 RFP를 작성하기 위한 작업에 많이 활용되고있습니다.

기업이 발주 및 컨설팅을 통해서 얻고자 하는 목적 , 방향 , 전략도출방법 여기에 따른 작업프로세스 , 제안업체의 관리등들이 이러한 RFI를 통해서 구성됩니다

사용자 삽입 이미지

'개발' 카테고리의 다른 글

Shock Sticker  (1) 2007.07.12
SciTE Editor 한글화하기..  (2) 2007.07.03
RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
이거보고  (0) 2007.06.26
do not appear this message  (0) 2007.06.25
gSOAP 사용법  (1) 2007.06.21

Trackbacks 0 / Comments 0

Leave Comments

이거보고

어디가 문제인지 짐작할 수 있는건가요?


단지 이 메세지만 보고 말이죠..

사용자 삽입 이미지

'개발' 카테고리의 다른 글

SciTE Editor 한글화하기..  (2) 2007.07.03
RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
이거보고  (0) 2007.06.26
do not appear this message  (0) 2007.06.25
gSOAP 사용법  (1) 2007.06.21
비트 필드 스트럭쳐  (0) 2007.05.22

Trackbacks 0 / Comments 0

Leave Comments

do not appear this message

개발했던 프로그램에서
"do not appear this message" 라는 메세지 박스가 뜬 적이 있는가..

STL 알고리즘이나 컨테이너쪽에서 발생하는 에러인것으로 짐작이 되는데..

이터레이션 범위를 벗어나는 곳에 접근을 시도할때 발생하는건가..

왜 이런 메세지가 뜨는지 사실 감이 오지 않는다.

휴,,혹시 아시는분 있으세효??

"이 메세지 나타나게 하지마"

어쩌라고...-_-

'개발' 카테고리의 다른 글

RFI(Request For Information)를 누가 작성하는걸까.  (0) 2007.07.03
이거보고  (0) 2007.06.26
do not appear this message  (0) 2007.06.25
gSOAP 사용법  (1) 2007.06.21
비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22

Trackbacks 0 / Comments 0

Leave Comments

gSOAP 사용법

1. 3가지 방식이 있음(C 방식, 무늬만 C++ 방식, 프록시 방식의 C++) - Proxy 가 가장 편함
2.
프로젝트 생성전 작업
- include
폴더를 가져 와야 함

- stdsoap2.h
stdsoap2.cpp 를 미리 복사해 둬야 함
3.
프로젝트 생성 절차
1) Visual Studio
를 에서 빈 작업을 생성한다.
2) [alt+F7]-Link-
라이브러리 에서 wsock32.lib 를 추가한다
.
3)
다음을 콘솔에서 수행한다. (WSDL 파일-> 헤더파일 생성
)
  wsdl2h -o <출력 헤더파일명> <wsdl의 위치>
  )
 
wsdl2h -o SumService.h http://docom5.kw.ac.kr:8080/axis/services/SumService?wsdl
4)
다음을 콘솔에서 수행한다. (헤더파일 -> 스텁 파일
)
  soapcpp2 -C -I import <헤더파일>       
  )
  soapcpp2 -C -I import SumService.h 
  유의: -C를 붙이면 클라이언트 전용 파일들만 나옴
3.
다음 2줄을 include 하게 됨
#include "soap
이름 Proxy.h"
#include "
이름
.nsmap"
)
 
#include "soapSumServiceSoapBindingProxy.h"
 
#include "SumServiceSoapBinding.nsmap"
4.
작성한다

)
SumServiceSoapBinding service;
service.
어쩌구
..
-
주의: 함수의 반환값은 언제나 call-by-reference로 처리한다
.
-
반환되는 값은 잘 수행되었는지 되지 않았는지를 반환한다
.



출처
http://128.134.64.50/zboard/zboard.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=subject&desc=asc&no=59


영문 User Guide 2.7.9
http://www.cs.fsu.edu/~engelen/soapdoc2.html

'개발' 카테고리의 다른 글

이거보고  (0) 2007.06.26
do not appear this message  (0) 2007.06.25
gSOAP 사용법  (1) 2007.06.21
비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22

Trackbacks 0 / Comments 1

Leave Comments

비트 필드 스트럭쳐

혹시 소켓통신이나 시리얼 통신을 할때
최적화된 메모리관리가 필요할때 유용할꺼 같습니다.
예를들어..

    BYTE sendBuf[9];
    sendBuf[0]=0x01;
    sendBuf[1]=0x31;
    sendBuf[2]=0x01;
    sendBuf[3]=0x01;
    sendBuf[4]=0x31;
    sendBuf[5]=0x01;
    sendBuf[6]=0x01;
    sendBuf[7]=0x11;
    sendBuf[8]=0x01;
위와 같이 바이트 배열에다 필요한 HEX값을 넣으면
사이즈는 9바이트겠지여...무조건..
그러나 위와 같은 데이터를 그대로 저장하면서 훨씬 적은 메모리를 차지하는 방법이
비트필드스트럭쳐를 이용하면 될꺼같은 생각에..
struct test{            // Bit Field Structure
    BYTE a:2;
    BYTE b:6;
    BYTE c:3;
    BYTE d:2;
    BYTE e:6;
    BYTE f:3;
    BYTE g:2;
    BYTE h:6;
    BYTE i:2;
};
와 같이 비트별로 지정을 해준다음에
                test t;
    t.a    =0x02;
    t.b                 =0x33;
    t.c    =0x04;
    t.d    =0x02;
    t.e    =0x32;
    t.f    =0x05;
    t.g    =0x01;
    t.h    =0x32;
    t.i    =0x02
이렇게 넣어준다면
5바이트만 사용해서 최소량의 메모리를 써서 똑같은 작업을 할수 있을 듯합니다.
딱 필요한 비트크기만 알면 거기에 맞게 비트필드를 써서 남는 공간을 최대한 절약하는 거져.

서버-클라이언트에서 어떤 프로토콜을 이용해서 소켓통신을 할경우에 유용하지 않을까 해서 두서없는 글 올립니다.
혹시 잘못된점이나 저의 생각에 오점이 있다면 꼭 알려주시기 바랍니다.
그럼 즐거운 하루되시길.

2002-9-9일 작성
likehood

'개발' 카테고리의 다른 글

do not appear this message  (0) 2007.06.25
gSOAP 사용법  (1) 2007.06.21
비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22
c/c++ 간단 토글링  (0) 2007.05.22

Trackbacks 0 / Comments 0

Leave Comments

도대체 가상함수는 어디에다 쓰는 것일까.

도대체 가상함수는 어디에다 쓰는 것일까.

1. 누가 읽어.
상속, 가상함수에 대한 설명은 여느 C++ 책에서나 쉽게 찾아 볼수 있다. 그리고 그 사용법도
쉽게 익힐 수 있을 것이다. 보통 MFC로 프로그래밍하다 보면 소켓이나 프로퍼티쉿 같은
클래스를 상속받아서 사용을 한다. 주된 이유로는 자신이 만들고자 하는 프로그램에 맞게끔
클래스를 만드는 데 있어서 불필요한 작업을 최대한 줄이고 생산성과 질이 높은, 안정된 환경을
상속이라는 개념이 제공해 주고 있는 것이다.

그러나 실제로 개발에 있어서 초보자들은 언제 상속을 받아야 하며 언제 가상함수를 써야
하는지 도통 실타래를 풀어 낼 수가 없는 경우가 많은 것같다. (나 또한 마찬가지ㅡㅡ)
소멸자에 가상함수를 붙여라, 순수가상함수는 이렇게 선언한다 등등 사용법은 여느 C++책에서
친절한 설명과 각종 예제와 곁들여져 쉽게 이해할 수 있도록 되어 있지만 막상 그걸 적용함에 있어서
막막함을 느껴 본적이 있다면, 그리고 그 막막함을 아직도 간직하고 있다면 이 글을 읽을
자격이 충분하다. 그럼 시작하자.

2. 스타크래프트
국민 게임 스타크래프트가 있다. 어디서 만들었는지는 다들 아실 것이다. 스타크래프트가
나온지 언 4년을 넘어선 것 같다. 블리자드는 기본 틀을 바꾸지 않고 유닛 몇개와 몇번의
밸런스 조정으로 2002년까지 왔고 2003년까지 가고 있는 것이다. 스타크래프트때문에
연봉 1억이 넘게 돈을 버는 사람도 생겨나고, PC방 사장님들의 입가에 미소를 머금게 해준
그 게임.
왜 갑자기 스타크래프트를 이야기 하고 있는지 궁금해 하는 독자들을 위해 이제부터 본격적으로
필자가 왜 스타크래프트를 이야기 하는지 알려줄 때가 된 것 같다.
스타크래프트에는 3가지 종족이 있고 3가지 종족들이 하는 일이란 미내랄과 가스를 구해서,
집을 짓고, 싸움을 하는 것이다.( 세부적으로 더 있겠지만 그건 http://www.blizzard.com에서 확인
하기 바란다.ㅡㅡ'')
여기서 하나만 때어 내 보자. 흠...좋다 흥미로운 싸움을 예로 들자. 세 종족은 모두 Attack이라는
기능을 가지고 있다. 그리고 기본적으로 Attack이라는것이 대동소이 하다. 왜? 밸런스를
맞추어야하니까.
저글링, 화이어뱃, 질럿을 예로 들자.이들은 지상의 길을 이용해 이동하며 근접전투를 한다.
그런데 가만히 보면 이 3가지 유닛이 하는 일이 모두 똑같음을 알수 있다. (가만히 안봐도 다 알겠군)
이들을 블리자드에서는 어떻게 구현했을까..

3. 구현
먼저 슈퍼 클래스가 있고 저그, 테란, 프토 클래스가 있을것이다.
슈퍼클래스에는 Attack이라는 순수 가상 함수가 존재할 것이고(아닐수도있지),
각 종족클래스엔 Attack이라는 함수가 있을 수 있을 것이다.

이제 살짝 만들어보자.

class CTop{
public:
    vurtual char* Attack()=0;
};

class CZerg:public CTop{
public:
   char*  Attack(){return "저글링 공격\n"};
};

class CTerran:public CTop{
public:
   char*  Attack(){return "화이어뱃공격\n"};
};

class CProtoss:public CTop{
public:
   char*  Attack(){return "질럿 공격\n"};
};

void main()
{

    CTop *pAttack[3];
   // 각각의 종족클래스를 Top형의 껍대기에다가 잡아 넣었다
    pAttack[0]=new CZerg;
    pAttack[1]=new Cterran;
    pAttack[2]=new CProtoss;
   // 그리고 for문을 이용해 돌려보자. 종족클래스의 Attack이 실행되는것이 보일 것이다.
    char *pCh;
    for(int i =0 ; i < 3 ; i ++)
    {
         pCh= pAttack[i]->Attack();
         printf(pCh);
    }
    // 지우자.
    for(int i =0 ; i < 3 ; i ++)
    {
         delete pAttack[i];
    }
}


먼저 위 코드를 보면 간단하게 3종족의 Attack을 사용하고 있다.
이것이 가상함수가 주는 힘이다. 가상함수가 없다면...
CTop클래스의 Attack을 이렇게 수정해야하며,
char* Attack("test");

pAttack[0]=new CZerg; 해도

"test"가 출력 될 것이다.

상속과 가상함수의 기능을 이용하여 각각의 클래스 내부구조를 추상화 시킨것이다. 따라서
공격명령만 주면 각 종족에 맞는 Attack이 일어나게 되는 것이다.~


2002.12.24 크리스마스 이브
likehood
msn: likehood.hanmail.net 

'개발' 카테고리의 다른 글

gSOAP 사용법  (1) 2007.06.21
비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22
c/c++ 간단 토글링  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12

Trackbacks 0 / Comments 0

Leave Comments

simpleAdo 2.0


/*!
 \brief
  ADO Component Wrapper Class
  - Create Date/Ver : 2003.03.19 /1.0
   - RecordSet은 CreateInstance사용안함.
  - Modify Date/Ver : 2003.04.18 / 1.5
   - RecordSet셋팅을 위해  CreateInstance를 사용했습니다.(ExcuteQryEx)
   - SaveQryData함수 추가 : select로 불러온 데이터를 파일로 저장(XML)
   - ExcuteQryEx함수 추가(레코드셋 설정을 위해...)
  - Modify Date/Ver : 2003.05.19 / 1.6
   - ExcuteQry, InsUpDel()함수 가변인수 적용..
    - EX) \n
     int nData=10;\n
     ExcuteQry("select * from tab where id= %d",nData);\n
  - Modify Date/Ver : 2003.08.26 / 1.7
   - GetState()함수 추가...
    - Object의 상태를 리턴합니다.
  - Modify Date/Ver : 2004.04.02 / 1.71
   - GetData(int&) 부분 수정
    - MS-SQL decimal타입 리턴시 32000이상시 - 값으로 리턴되는 버그 수정
  - Modify Date/Ver : 2004.04.07 / 1.80
   - simpleAdo 인스턴스간 복사 지원
    - ex) simpleAdo ado1;\n
     ...\n
     ...\n
     ...\n
     simpleAdo ado2(ado1); //가능\n
     simpleAd0 ado3=ado1; //가능\n
     simpleAdo ado4;\n
     ado4=ado1;    //가능\n
   - 데이터베이스 처리시 에러시 dumpfile 지원
    - 데이터 베이스 작업시 에러 file로 저장.
  - Modify Date/Ver : 1.81
  - 타입 강화.
   - select 질의 후 _varient_t형태로 리턴 추가
  - Modify Date/Ver : 2005-11-15/ 1.82
   - 리턴타입 강화
   - CHAR값 리턴 함수추가
    - BOOL GetData(const long nCol,const long nRow,TCHAR& chData) const;
  - Modify Date/Ver : 1.90
   - ExcuteQry로 select Insert Update Delete Stored Procedure 모두 지원(기존함수로도 지원함.)
   - Stored Procedure실행시 Recordset이 존재할 경우 GetData()로 사용 가능.
  - Modify Date/Ver : 20060919/ 2.0
   - 시간이 많이 걸리는 쿼리 시 message pumping을 실시하여 UI가 멈추는 일이 없도록 함.
   - 사용자가 선택할수 있도록 SetMessagePump(BOOL)지원.
   - 참고사항
   - 프로젝트시작 / 종료부부분에 명기 -> ::CoInitialize(NULL); and ::CoUninitialize();
   - _ConnectionPtr,과 _RecordsetPtr의 사용 종료시 ->Close(), .Release()함수는 자동호출되므로 사용안함.
   - StoredProcedure 사용법
    - Return 값을 가지는 프로시져인 경우
     _CommandPtr 객체를 이용(MSDN 참조)\n
     In, Out Parameter를 생성하고 작업해야 함.\n
     _CommandPtr cmd;\n
     cmd.CreateInstance(__uuidof(Command));\n
     cmd->ActiveConnection=m_pConnection;\n
     cmd->CommandType=adCmdStoredProc;\n
     ...\n
     ...\n
     ...\n
    - Recordset을 리턴하는 경우
     ado.ExcuteQry("exec ProcName %d,%d,%d",1,2,3);\n
     ado.GetData(i,j,retData);\n
    - Return정보가 없는 경우
     ado.InsUpDel("exec ProcName 1,2,3"); \n
     또는 ado.ExcuteQry("exec ProcName 1,2,3");\n

 \author [likehood / 송영배]
 \date [2006-07-14 오후 3:35:59]
 \version [2.0]
 \bug
 \warning 대용량 데이터 쿼리시 HEAP메모리를 많이 차지하게 됩니다.
*/

'개발' 카테고리의 다른 글

비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22
c/c++ 간단 토글링  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12
도서물 도착!!  (0) 2007.04.09

Trackbacks 0 / Comments 0

Leave Comments

c/c++ 간단 토글링

 (1) 0과 1을 토글(Toggle)하는 경우: 프로그램에서 변수의 값을 0↔1을 토글
    int i=0; //전역 or member 변수
    i^=1;//비트 배타합(eXclusive Or) 연산의 특징을 이용한다.
  이와 같은 기교는 임의의 두 수를 토글하는데 사용할 수 있다. 예를 들어 1
과 3을 토글하려면, 0001 ^ 0011 → 0010
이므로, 두 수의 배타합의 결과인 2와 배타합 연산을 하면된다.
    int i=1; //전역 or member 변수
    i^=2;//1과 3을 토글한다.
  (2) 1과 -1을 토글하는 경우
    int i=1; //전역 or member 변수
    i=-i;
  (3) 0,1,2,3을 토글하는 경우: 2개 보다 많은 숫자를 토글
    int j=0; //전역 or member 변수
    i=(i+1)%4;
  만약, 5,6,7,8을 토글하고 싶다면,
    int j=0; //전역 or member 변수
    int i;
    j=(j+1)%4;
    i=j+5;
처럼 사용한다. 일반적으로 m에서 시작하고 연속된 n개의 숫자를 토글하려면,
    int j=0; //전역 or member 변수
    int i;
    j=(j+1)%n;
    i=j+m;
을 사용하면 된다.
    (4) 임의숫자 토글 (참조표이용..)
    int toggle[]={100,34,200,79}; //전역 or member 변수
    int j=0, i;
    j=(j+1)%4;
    i=toggle[j];

'개발' 카테고리의 다른 글

도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22
c/c++ 간단 토글링  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12
도서물 도착!!  (0) 2007.04.09
H.264 white paper(intel)  (0) 2007.04.02

Trackbacks 0 / Comments 0

Leave Comments