블로그 이미지
blueye

카테고리

내블로그 (52)
창작활동 (10)
저장활동 (16)
관심 (0)
Total155,248
Today20
Yesterday45

짝사랑 - Gigs

/ 2008.07.31 23:33


더울때 듣는 노래~ㅋㅋ

Gigs. 이적이 김진표를 만나기전에는 한동안 노란색이었다.

날도 덥고
그냥 뭔가 신나는 노래가 듣고 싶어서 머릿속을 뒤적뒤적하다가
무려 발매된지 5년이나 지난 노래의 기억의 흔적을 찾아냈다. ㅋㅋ

영화 [후아유]에서 이 노래를 처음 들었다.
조승우가 기타치면서 부르던 노래. 가사가 재밌어서 기억에 남는다.

노래 제목이 짝사랑이다.
고등학교시절 윤리 선생이 강조하던
'짝사랑의 장점'이라는 기억의 흔적까지도 찾아버렸다 ㅋㅋㅋㅋㅋ
    1. 채일 염려없다  
    2. 돈이 들지 않는다  
    3. 보고 싶을때 볼 수 있다  
    4. 상처없이 끝낼수 있다

5번부터는 기억이 안난다. 더 있었던거 같은데 ㅋ
예나 지금이나 별로 공감은 안된다.ㅎㅎ



비가 와도 덥다. 이번 주말까지 비가 온댄다.
6주 연속으로 토요일에는 비가 내리고 있다.

어차피 비안와도 할건 없지만.ㅋㅋ



Posted by blueye

나무 그네 설치하기

/ 2008.07.15 10:19


1. 고객이 요구사항을 설명한 것

2. 프로젝트 팀 리더가 이해한 것

3. 시스템 분석가가 디자인한 것




4. 프로그래머들이 만들어낸 것

5. 비지니스 전문가가 묘사한 것 (고객에게 설명할 때)

6. 프로젝트가 문서화된 정도





7. 설치했을 때

8. 고객이 만들어진 소프트웨어의 댓가로 지불한 수준

9. 완성후 지원되는 모습





10. 고객이 정말로 원했던 것
Posted by blueye
TAG

______________________________________________________________________________________________________

SQL : SELECT : Select문.

-- Select문.
-- [1] SELECT(검색)문
-- 정의) Select FieldNameList From TableName [Where 조건] [Order By 정렬시킬 필드명 [ABC|DESC]]


-- [2] 시스템 정보만 얻어오기(시스템 함수 사용)
-- 현재 서버의 이름을 검색

Select @@servername
-- 현재 서버의 버전을 검색
Select @@version


-- [3] Memors의 모든 필드 검색.
Select Num, Name, Title, PostDate From Memos
-- Memors의 모든 필드 검색('*'와일드문자 사용 : 모든것).
Select * From Memos


-- 참고) 시간차 주기 : WAITFOR(몰라도 상관없음)
BEGIN
 SELECT * FROM Memos
 WAITFOR DELAY '000:00:05' -- 특정시간 후에 명령어 진행
END


-- [4] Memos에서 Name필드와 PostDate필드만 검색.
Select Name, PostDate From Memos


-- [5] 조건검색 : Name이 씨앗인 사람의 모든 것 검색.
Select * From Memos Where Name = '씨앗'


-- 조건검색 : Name이 씨앗인 사람의 Num, Email만 검색.
Select Num, Email From Memos Where Name = '씨앗'


-- [6] 조건검색 : Name이 '씨'로 시작하는 사람의 모든것 검색.
-- '%' 와일드 문자 사용. %->모든것.../like 키워드 사용.

Select * From Memos Where Name like '씨%'


-- 조건검색 : Name에 '니'자가 들어가는 사람의 모든것 검색.
Select * From Memos Where Name like '%니%'


-- 조건검색 : Name이 '앗'자로 끝나는 사람의 모든것 검색.
Select * From Memos Where Name like '%앗'


-- 조건검색 : Name이 '니'자로 끝나는 사람의 Name과 Email만 검색.
Select Name, Email From Memos Where Name like '%니'


-- [7] 조건검색 : Memos 테이블에서 Name이 '씨'로 시작하고 [그리고|또는] Email에 's'자가 들어가는 사람의 모든것 검색.
-- AND 연산자 사용.
Select * From Memos Where Name like '씨%' AND Email like '%s%'
-- OR 연산자 사용.
Select * From Memos Where Name like '씨%' OR Email like '%s%'


--[8] 정렬검색 : Num의 역순(내림차순)으로 정렬.
-- 오름차순 정렬(ASCending) = 1,2,3 순서대로...(기본값)
-- 내림차순 정렬(DESCending) = 3,2,1 순서대로...

Select * From Memos Order By Num DESC


-- 정렬검색 : Name 필드를 오름차순으로 정렬
Select * From Memos Order By Name ASC -- ASC는 생략가능.


-- Name에 '앗'자가 들어가는 사람의 Name과 Email을 Num의 역순으로 검색.
Select Name, Email From Memos Where Name like '%앗%' Order By Num DESC


-- [9] 상위 5개 레코드만 검색.(Top 5)
Select Top 5 * From Memos Order By Num DESC


-- [10] 해당 테이블의 전체 레코드 수 반환
Select Count(*) From Memos
Select Count(*) As [전체레코드수] From Memos

-- 카운트 결과 값을 '전체레코드수'라는 별칭으로 조회하고자할 때 AS구문 사용.


-- 전세계 유일한 문자열 값을 출력시켜주는 함수.
Select newid()
-- 각 사용자별로 서로 다른 어떤값을 부여해주고자할 떄 newid()라는 내장함수를 사용할 수 있는데 이를 통하면 절대로 똑 같은 값이 나오지않는 문자열을 만들어 낼 수 있다.



_____________________________________________________________________________________________________

출처 : loger1000님의 스프링노트 (캄사합니다-)

현재 DB에서 어떤 특정한 조건을 만족하는 레코드만을 뽑아낼 때 SELECT 구문을 사용한다.

저걸보고 있자니,
다음학기 DB수업은 얼마나 더러울까 하는 생각이 문득 스쳐간다.
빨리 보고 닫아버려야지.


Posted by blueye
1 리소스를 DLL로 만들기
2 주의사항
3 권장 사용법
4 MUI(OS에서 지원!)
5 기존 코드 다국어 변형 작업

리소스를 DLL로 작성하여 다른 언어 지원시 리소스 DLL만 바꿔준다.
 

1 리소스를 DLL로 만들기


  1. VC에서 비어있는 dll프로젝트를 만든다.
  2. 새로 리소스파일을 추가
  3. 리소스의 속성을 보면 언어를 설정할 수 있다. 지원하는 언어로 설정하여 리소스 작성
  4. DLL컴파일 -> 리소스 DLL이 만들어 진다.

2 주의사항


  1. 두 DLL의 ID는 철저하게 일치하여야 한다. (ID란 매크로가 아니라 부여된 번호를 말한다.)
  2. 리소스가 DLL로 따로 작성되기 때문에 호스트 프로그램과 ID값을 일치시키는데 신경써야 한다. (리소스를 분리하지 않으면 자동으로 되겠지만)
  3. 다른 언어용 리소스 DLL은 가지고 있는 요소들이 일치하여야 한다. 한쪽에만 특정 다이얼로그가 있어선 안된다.
  4. 단축키(Accelerator)도 가능한 일치시키는게 좋지만 다국어 지원시 달라질 수도 있다.

3 권장 사용법


  1. 호스트 프로그램에서 언어 설정을 바꿀 수 있는 메뉴가 존재
  2. 현재 설정된 언어는 레지스트리에 저장
  3. 로딩시 이 값을 읽어 해당 DLL을 로드

4 MUI(OS에서 지원!)


  1. 원래 코드의 텍스트 리소스파일만 따로 떼어내어 dll을 만들되, 만들어질 이름을 실행화일이름.코드번호.mui' 로 한다.
    해당 언어로 변환하여 빌드한다.
  2. 원본 코드에서 텍스트 관련 리소스는 삭제한다. 빌드.
  3. 언어별로 mui파일만 작성해 놓으면 OS가 선택해 스트링관련 리소스 로드!!! (언어팩이 이렇게 가능해지는건가?)

5 기존 코드 다국어 변형 작업


  1. 언어 작업시 제어판->국가및 언어 옵션-> 모든 설정을 해당 언어로 셋팅. (리부팅 필요)
  2. 리소스 : 스트링 테이블, 다이얼로그, 글자가 들어간 비트맵및 아이콘 수정. 리소스의 언어를 반드시 해당언어로 설정.
  3. #define 되어 있는 부분에 작성자가 스트링을 소스내에 모아 놓았을 수도 있음. 수정.(헤더파일들 검색)
  4. MessageBox 검색, 수정
  5. AfxMessageBox 역시 검색, 수정. AfxMessageBox의 경우 미리 정의된 AFX_IDS_APP_TITLE 을 메세지 박스 타이틀로 사용.
    이 매크로가 정의 되어 있지 않은 경우 프로그램 이름을 타이틀로 사용
  6. DrawText, TextOut 등을 검색 수정.
  7. (!!!중요!!!) MFC등을 사용한 프로그램의 경우에는 출력되는 스트링을 찾을 수 없거나 MFC리소스에 있는 경우가 있다.
    이는 시스템에서 출력하는 메세지로 OS 이미지의 쉘에서 해당 스트링이 바뀌어야 하는 것으로 App.쪽에선 수정할 필요가 없다.
  8. 프로그램 실행파일 이름과 타이틀도 바꾼다. 상호 호출하는 Apps. 인 경우 호출하는 프로그램 이름이 정의된 곳을 찾아서 바꾸어준다.
    클래스 이름은 바뀔 필요가 없다. 타이틀은 FindWindow등에서 사용될 가능성이 농후 하므로 검색하여 찾아준다.
    ex) NWAVE 카메라: 리소스 수정, rc파일 직접 열어 메뉴항목 수정(반드시 eVC에서 리소스 해당언어설정), MessageBox 수정, DrawText 수정, CameraDll도 마찬가지. SendMessage!!!, 스트링 관련 함수들 - wsprintf, wcscpy, wcscat등, format
_____________________________________________________________________________________________________

출처 : Batmask Wiki :: 다국어 지원 프로그래밍
Posted by blueye
MainFrame, DOC, VIew, 사용자 Class 사이를 마음대로 헤집고 다니는 방법.

검색 키워드 : mfc view 접근



요거 한방이면 다 끝이다.ㅋㅋ

______________________________________________________________________________________

4대 Class간 참조

  //각각 헤더파일 include

  #include "MainFrm.h" //메인프레임 헤더파일

  #include "ClassDoc.h"   //Doc클래스 헤더파일

  #include "ClassView.h" //View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다

  #include "Class.h" //APP Class 의 헤더파일


  void CClassView::OnMenuView() //뷰클래스

    CClassApp *pApp=(CClassApp *)AfxGetApp();   //View -> App
    CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();  //View -> MainFrm

    //View -> MainFrm -> Doc

    CClassDoc *pDoc=(CClassDoc *)pMain->GetActiveDocument();

    CClassDoc *pDoc=(CClassDoc *)GetDocument();         //View -> Doc


    //MainFrame 클래스

    CClassView *pView=(CClassView *)GetActiveView();  //MainFrm -> View

    CClassDoc *pDoc=(CClassDoc *)GetActiveDocument();  //MainFrm -> Doc

    CClassApp *pApp=(CClassApp *)AfxGetApp(); //MainFrm -> App


    //Doc 클래스

    CClassApp *pApp=(CClassApp *)AfxGetApp(); //Doc -> App

    CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //Doc -> MainFrm

    // Doc -> MainFrm -> View

    CClassView *pView=(CClassView *)pMain->GetActiveView();

    CClassView *pView=(CClassView *)m_viewList.GetHead();      // Doc -> View


    //App 클래스

    CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //App -> MainFrm

    //App -> MainFrm -> View

    CClassView *pView=(CClassView *)pMain->GetActiveView();

    //App -> MainFrm -> Doc

    CClassDoc *pDoc=(CClassDoc *)pMain->GetActiveDocument();


_____________________________________________________________________________________________________

출처 : Tong - Mothrah님의 Windows통
(캄사~)

Posted by blueye

최근에 달린 댓글

최근에 받은 트랙백

글 보관함