Why not change the world??
M4DNUT'S BLOG
Why not change the world??
 
전체
daily life
interesting things
project
favorite
english study
     
«   2009/07   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
 
   
Casino 1241778238
Casino 1241778238
Casino 1241775033
Casino 1241775033
jxuxrpou
jxuxrpou
rwftyrhr
rwftyrhr
kwadfvds
kwadfvds
 
2009/01 - 2
2008/12 - 3
2008/11 - 1
2008/10 - 2
2008/09 - 9
  

Total 21768, yesterday 29, today 13
powered by Tatter tools, designed by kokoro studio.
본래 API를 통해서 폴더 선택에 대한 Dialog를 띄우기 위해서, 아래와 같이..
shell function을 사용해야한다. 엄청나게(?) 긴 코드가 별로 맘에 들지 않는다..

그래서 CodeGear에서는 다음과 같이 아주 편하고 하나의 함수로 폴더 선택 다이어로그를 띄울수 있다..
VCL의 FileCtrl 유닛에 보면 SelectDirectory라는 함수를 지원한다.

Dialog의 위치가 이상할 경우 PostMessage와 MoveWindow 함수를 이용하여, 위치를 재조정 해주면된다.
이올린에 북마크하기
2009/07/02 02:10 2009/07/02 02:10
   http://mynism.cafe24.com/trackback/67
  1. HS
    2009/07/02 13:38
    빌더도 쓰시나요..? +_+
[로그인][오픈아이디란?]

명명된 파이프와 메일슬롯 API처럼 윈속은 Windows I/O 모델과 통합하고 소켓을 나타내기 위해 파일 핸들을 사용한다.
이 지원은 커널 모드 파일 시스템 드라이버의 도움을 필요로 하므로, Msafd.dll은 소켓 기반 함수를 구현하기 위해 보조 함수 드라이버(AFD; Ancillary Function Driver, \Windows\System32\Drivers\Afd.sys)의 서비스를 사용한다.
AFD는 TDI 클라이언트이고, TDI IRP를 프로토콜 드라이버에 전송하여 메시지를 보내고 받는 것과 같은 네트워크 소켓 작업을 수행한다

이올린에 북마크하기
2009/06/30 18:51 2009/06/30 18:51
   http://mynism.cafe24.com/trackback/66
[로그인][오픈아이디란?]

// 볼랜드 포럼의 장성호 님의 글의 내용을 보고 정리한 것입니다..
// 이런것도 있는지 오늘 알았습니다.. 장성호님께 감사의 뜻을 전합니다!!
========================================================================================================
보통 우리가 Exception처리르 할경우 try~catch로 예상 부분 혹은 발생 부분에 대해서..
Exception 처리를 한다. 그렇지만, 모든 Case에 대한 Exception 처리는 불가능하다..
예측하지 못한 Case들이 너무나도 많으므로..
현재 CodeGear의 C++ Builder와 Delphi에서는 해당 Application (폼, 컨트롤)등에서 발생하는...
모든 Exception에 대해서 핸들링 할수 있는 방법이 존재한다..
TApplication의 OnException이벤트 핸들러를 이용하는 방법이다.
OnException 핸들러의 타입은 아래와 같다.

이러한 OnException 핸들러는 TApplication->HandleException에서 호출합니다.

1) TCustomForm에서 예외 발생시 Application.HandleException을 호출합니다.
2) TWinControl의 MainWndProc에서 WindowProc를 호출해주고 예외가 발생하면 Application.HandleException을 호출합니다.
3) TDragObject의 WndProc와 MainWndProc에서 예외발생시 Application.HandleException을 호출합니다.
4) TDataModule의 HandleCreateException 와 DoDestroy 에서 예죄발생시 호출합니다.
5) 기타 StdCtrls , ComCtrls , ExtCtrls 등의 각종 Control및 Component에서도 예외발생시 호출해주는 곳이 많습니다. Timer 또는 ADOConnection등의 Component에서도 호출합니다.
위의 내용은 HandleException을 호출해주는 곳입니다.
GraphicControl의 WndProc에서는  Application.HandleException 을 직접 호출하지는 않습니다.
만약 GraphicControl의 WndProc에서 예외가 발생하면 해당 GraphicControl이 소속된 WinControl의 WindowProc에서  except가 잡혀서 거기서  Application.HandleException가 호출됩니다.

     => 이경우 GraphicControl의 이벤트 핸들러(MouseDown/Move/Up등)에서 예외가 발생하더라도
         Application.OnException으로 넘어오는 Sender가 GraphicControl이 아니라
         Parent인 WinControl이 Sender가 될것입니다.

TPopupMenu , TMenuItem에서 예외발생시 PopupList가 Application.HandleException을 호출한다.
Action은 Application.OnIdle에서 호출하므로 예외발생 객체도 모두 Application이 된다.
사용하는 예~!!

이올린에 북마크하기
2009/06/26 01:02 2009/06/26 01:02
   http://mynism.cafe24.com/trackback/65
[로그인][오픈아이디란?]
일반적으로 하위파일이나 폴더가 있을때, 폴더를 지우기 위해서..

FindFirstFile(), FindNexFile(), FindClose()로 DFS로 탐색을 하던지 해서, 내부 파일을 모두 지우고..

그다음 폴더를 지우고.. 상위 폴더들을 차례 차례 RemoveDirectory등의 함수로 순차적으로 삭제 해야한다..

그런데 한큐에 아무 상관 없이 지울수 있는 함수가 있다..

SHFileOperation함수를 사용하는 것인데.. 폴더채 복사부터 해서..

우리가 일반적으로 SHELL에서 사용하는 모든 기능들을 제공한다..

자세한 사항은 MSDN을 참조..



이올린에 북마크하기
2009/06/23 01:48 2009/06/23 01:48
   http://mynism.cafe24.com/trackback/64
[로그인][오픈아이디란?]
리눅스에서 작업할일이 있어서.. 쉘 스크립트를 짯다..
정말 간만에..ㅡ_ㅡ;; 그런데 스크립트 초기부분에 환경변수를 등록하는 부분이 있는데..
이상하게 실행하면.. 등록되지 않는다.

그래서 구글링을 통해서 알아낸 결과.. 자식 쉘을 생성시켜서 거기서 등록 시킨다는 것이다..
따라서, 현재 쉘에 적용되기 위해서 다음과 같이 스크립트를 실행해야한다.
$source ./test.sh
이올린에 북마크하기
2009/05/15 01:03 2009/05/15 01:03
   http://mynism.cafe24.com/trackback/63
  1. HS
    2009/05/22 10:06
    그동안 바쁘셨나봐요~~ 간만에 뭔가가 올라왔군요 +_+
  2. m4dnut
    2009/05/25 22:19
    ㅎㅎㅎ 바쁘다기 보다도.. 게으르다는것이 맞겠지요.. 블로그는 전혀 신경 안쓰고 있답니다..
    간혹 들어와볼뿐.. 그냥 개인적인 기록으로..ㅡㅡ;;
[로그인][오픈아이디란?]
역시나 전공 외에는....
개털 렸다.. ㅅㅂ..ㅠ.ㅠ
슬푸다.. 그냥 눈물만 나오네...
이번학기엔 장학금 힘든거야?? 그런거야??
이올린에 북마크하기
2009/05/02 01:49 2009/05/02 01:49
   http://mynism.cafe24.com/trackback/62
[로그인][오픈아이디란?]
크리스마스 전에 동영상이 떳다는 기사 보고 바로 찾아봄..ㅋㅋㅋㅋ
해설하는 사람이 더 재미있는듯..ㅋㅋㅋㅋ

위에껀 Part1, 아래는 Part2
이올린에 북마크하기
2009/01/06 16:56 2009/01/06 16:56
   http://mynism.cafe24.com/trackback/60
  1. kwadfvds
     x kwadfvds
[로그인][오픈아이디란?]
1. 와우스토리
가이드라인 잡고 현재 문서 + 프로그래밍 중.. 1월 16일까지 끝내기를 목표!!

2. 문서번역 및 연구 프로젝트
와우해커의 멤버가 됐으니 먼가 기여를 필수적으로 해야할듯.. 와우스토리 마무리 되는대로 할 것!!

3. 뉴럴 네트워크 세미나
세미나 준비 해야한당.. 교수님께서 거는 기대가 크다고 하시넹..ㅠ.ㅠ

4. 퍼지 공부
요즘엔 신경망과 Fuzzy와 복합적으로 가는 추세라고 한다. Hybrid라나 머나.. 퍼지도 좀 공부할 필요가 있다.

5. 중국 서부 여행
이번학기 이것을 위해 장학금을 노렸다.. 꼭 간다.. 2월 초쯤에.. 한 보름 정도..

6. 영어공부..
다시 영어 공부 시작.. SAT 단어 +2000단어 완벽 마스터 할 것!!

7. 일본에 할머니댁 방문
1월 설날 맞춰서 출국 후 일주일 머물고 돌아올 예정
이올린에 북마크하기
2009/01/06 16:06 2009/01/06 16:06
   http://mynism.cafe24.com/trackback/59
  1. rwftyrhr
     x rwftyrhr
[로그인][오픈아이디란?]
오늘부터 기말 시험 기간 시작이닷...ㅠ.ㅠ
딱 보름만 버닝 타는거닷!!
깔끔하게 시험 보고, 이번 방학은 여력을 남기지 않고, 달려주마..ㅅㅂ
장학금..+_+
이올린에 북마크하기
2008/12/15 10:55 2008/12/15 10:55
   http://mynism.cafe24.com/trackback/58
  1. jxuxrpou
     x jxuxrpou
[로그인][오픈아이디란?]

언제나 헷갈린다..ㅋㅋㅋ
CString  => char* 변환


char * ch;
CString *str;

1) ch = (LPSTR)(LPCSTR)str;

2) ch = str.GetBuffer(str.GetLength());
3) wsprintf( ch, "%s", str);

char*  =>  CString 변환

1) str = (LPCSTR)(LPSTR)ch;
2) str = ch;

참고)

LPSTR 은 char* 입니다.

LPSTR : char stirng의 32비트 포인터, char* 와 같다.

LPCTSTR : Constant character String의 32비트 포인터

UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형

BYTE : 8비트 unsigned 정수

참고 : CString을 const char* 형태로 변경 -> (LPTSTR)(LPCTSTR)CString

이올린에 북마크하기
2008/12/10 10:54 2008/12/10 10:54
   http://mynism.cafe24.com/trackback/57
  1. shinlucky
    2008/12/15 12:35
    MFC 저도 저 부분 때문에 고생좀 했었죠
    저는 아마 옵션에서 멀티바이트 체크한 후, (LPCTSTR)로 강제 형변환하여 사용했던 것 같네요. [CString -> char * 할때]
    atoi 하나 사용할려구 ㅠ.ㅜ;

    깔끔하게 정리해주셔서 감사합니다 ㅋ
  2. m4dnut
    2008/12/15 22:56
    ㅎㅎㅎ 저도 항상 간만에 한번씩 쓸때면 헷갈리더군요..ㅠ.ㅠ
    도움이 되셨다고 하니 다행입니다..^^
[로그인][오픈아이디란?]
*1  *2  *3  *4  *5  ... *7