#include <iostream>

using namespace std;

template <typename T>
T _Max(T left, T right)
{
 return (left > right ? left : right);
}


int main()
{
 double da,db,dc;
 da = 10;
 db = 20;
 dc = _Max(da,db);
 cout << "type is double " << da << ", " << db << " to bigger is " << dc << endl;

 int ia,ib,ic;
 ia = 11;
 ib = 5;
 ic = _Max(ia,ib);
 cout << "type is int " << ia << ", " << ib << " to bigger is " << ic << endl;
 return 0;
}

... ㅡ.ㅡ...

'C/C++언어' 카테고리의 다른 글

[리눅스프로그래밍] makefile  (1) 2008.03.07
ASSERT(), VERIFY(), TRACE()  (0) 2008.03.04
<이클립스 디버그 방법>  (0) 2008.01.28
printf 문을 만들어보자  (0) 2008.01.28
여러 C++ 컴파일러  (0) 2007.09.06
fatal error C1010: unexpected end of file while looking for precompiled header directive


VC++은 파일 하나를 컴파일 할때 INCLUDE해야 할 파일이 너무 많아서 컴파일이 늦어지는 것을 막기위해 precompiled header라는 것을 만들었습니다.

이 헤더 파일(보통 stdafx.h)을 include한 .cpp는 미리 만들어진 precompiled header를 기본으로 사용하게 되어 있습니다.

하지만 다른 컴파일러로 만들어진 라이브러리(소스)에는 이런 것이 없겠죠.

그럼에도 VC++ 컴파일러가 자기는 precompiled header가 필요하다고 저런 이상한 메시지를 냅니다.


이런 경우.. 해당하는 모든 .cpp의 맨 첫줄에 #include "stdafx.h"를 넣어주거나...

해당하는 파일의 precomiled header 플래그를 꺼주면 됩니다.

끄는 방법은 project/setting 에서 c/c++ tab의 precomiled header 관련 category에서 사용하지 않음을 선택하면 됩니다

출처 : http://cafe.naver.com/hopistudy/71

사용자 삽입 이미지

간혹 이런 메시지가 뜨면 당혹스럽기도하다.
대부분 이런 메시지는 MFC가 만드는 자동 소스 생성 부분 (즉 위져드 부분)에서 에러난다.
무시하고 진행해도 되지만.. 그 많은 양의 소스를 일일이 치는건 역시 무리다..

이 문제를 해결하기위해 처음엔 Visual Studio 자체를 지웠다가 설치해 봤다.
하지만 문제는 해결되지 않았다.. 무엇이 문제일까 하다가..

역시나 네이버.. orz

문제는 internet Explorer 이였다.. 이참에 걍 불여우로 바꿔볼까 ...
하여간 문제 해결은 의외로 간단하였다.
사용자 삽입 이미지

익스플로어 기본설정을 원래대로 초기화 한뒤
스크립트 디버깅 사용안함부분이 체크되었는지 확인한뒤
사용자 삽입 이미지
좀 내리다 보면 UTF-8 URL 보내기가 체크되어있는데 이걸 해제한다.

그럼 문제없이 뜬다

<이클립스 디버그 방법>


1. 톰켓서버를 먼저 실행


2. 라인에 더블클릭하면 파란 동그라미 생긴다. 여기서 부터 디버그를 하겠다는 표시


3. 웹어플사이트에 액션을 수행하면
    창이 뜨고 확인 누르면된다.
    그러면 디버그 모드로 간다


4. F6은 한줄씩디버그 하기

   오른쪽 위에 variable 과 병행하면서 코드를 본다.


5. F5는 안에 있는 메소드로 들어가고 싶을때 사용.
    그리고 들어가면 다시 F6으로 한줄씩 디버깅체크


6. F7은 중도에 다시 돌아가고 싶을 때

    F8은 한번에 검사하고 싶은곳을 같이 보고싶을 때


7. 한가지 변수에만 검사하고싶다.

    블럭해서 오른쪽 마우스클릭 후 watch 선택


--------------------------------------------


<이클립스 자주쓰는 단축키 및 기술>


 Code Assist :  Ctrl + Space (자동으로 이클립스 코드 보여주는 기능)

 Quick Fix : Ctrl + 1 (에러시 빨간에러표시시 Ctrl + 1 을 누르면 방법 제시)

 Quick Hierarchy : Ctrl + T (계층 구조 보기)
 
 Quick Outline : Ctrl + O (아웃라인구조 보기)

 Source Code Navigation : F3, Alt + Forward

    메소드를 들어가 보고싶을때(ctrl을 누르고 클릭해도가능)
    Alt + Back 다시 돌아갈때

 Line move : Ctrl + L (라인 이동)
 
 Mark Occurrences : 형광등 기능. 관련된 것에 같은색으로 표시됨.

 Search : Ctrl + F (소스내 검색기능)
   Ctrl + H (파일이나 자바나 플러그인 등 검색시)

 Comment : Ctrl + /   (블럭 지정하여 자동으로 주석 처리하기)

 Import : Ctrl + Shift + O (import 에러시 필요한 정보를 제시하여준다)

출처 : Tong - icircle님의 프로그램통

'C/C++언어' 카테고리의 다른 글

ASSERT(), VERIFY(), TRACE()  (0) 2008.03.04
템플릿 사용한 max 만들기  (0) 2008.03.03
printf 문을 만들어보자  (0) 2008.01.28
여러 C++ 컴파일러  (0) 2007.09.06
함수포인터란 ?  (0) 2007.09.06

정녕~ 이럴수가.. 회사에서 printf 를 만들라는 과제를 받아 만들었습니다.

이사님께 튜트리얼 을 좀 배우고 나서 만들어 본 것인데...

정녕 이걸 네이버에 주소값을 검색해보니.. 개털~ 안나오더군요 google 엔 양키들이 한것이 조금 있더군요


한국 사람들이 얼마나 쪼잔한지 알것 같습니다 .ㅋㅋㅋㅋ

하지만 전 과감하게 올립니다!!

구글에 검색했을때 0xB0008000 을 하니 나왔습니다! 바로 검색어가 0xB0008000 이었는데..

ㅡ,ㅡ.. 문제는 VC 에서는 안됩니다.. 그레서 볼랜드 C 에서 햇습니다.

컴파일 옵션에서 메모리 할당을 large 로 바꿔야 돌아갑니다..


자 BC 로 옵션을 마추어 놓고~ 시작을 합니다. 그전에 알아야 할 것들이 0xB0008000 은 바로 텍스트 모드의 메모리 의 첫 주소 입니다.

0xB0008000 은 콘솔창( VC 로 콘솔 모드로 만들면 뜨는 cmd 창 ) 의 잴 왼쪽 위 구석탱이를 가르킵니다. 그 다음은 2바이트씩

0xB0008002 는 2번째를 가르키겠죠. 그곳에 아스키 코드를 넣어주면 출력이 됩니다. 간단하죠?

하지만 왜 2바이트 단위냐~ 바로 첫번째는 글씨( 0xB0008000 ) 이고 두번째는 ( 0xB0008001 ) 은 색입니다.

XRGB 로 4비트로 구성이 되어 있습니다.

X 는밝기

R 빨간

G 초록

B 파란


이런 식 입니다.

그렇다면 맨 왼쪽위에 A 를 출력하고 싶다! 그렇다면


char * p = (char*)0xB0008000;

*p = 0x41;

*(p+1) = 0x04;


자 빨간색 A 가 나옵니다 . 왜 0x04 가 빨간색이냐!?


X R G B

0 0 0 0

검은색입니다.

X R G B

0 1  0 0

빨간색입니다.

비트를 계산하는 방식이

‥‥ 32 16 8 4 2 1

이죠.. 이걸 매치시킨다면!?


X R G B

8 4 2 1

이가 되겠죠. 그렇다면 빨간색은 4, 그럼 파란색은 1, 초록은 2, 하얀색은 모두더한 F 가 되겟죠..참고로 C 언어는 16진수로 인식을 합니다~ 주의하셔야 합니다.


자 그렇다면 가로가 80입니다. 세로는 24이지요. 그럼 다음번째 줄에 A 를 쓰려면

*p+80 을 하면 됩니다. 그럼 다음번째 줄이 되겟죠..

자 아주 간단하지요?

회사 강의 란에 printx 와 putchx 가 있을것 입니다. 제가 만들었죠 훗..


아레는 BC 의 옵션 설정 방법 입니다.

 

사용자 삽입 이미지

사용자 삽입 이미지

그리고 요번엔 예제 실행 파일 입니다.

사용자 삽입 이미지
사용자 삽입 이미지


소스 파일은


#include <conio.h>
 //4 2 1
enum Color{
 C_RED = 0x04,
 C_GREEN = 0x02,
 C_BLUE = 0x01,
 C_BLACK = 0x00,
 C_WHITE = 0x0F,
 C_GRAY = 0x07
 };

void putchxy( int x, int y, char Text, Color eText )
{
 char * pAddr = (char *)0xB0008000;
 pAddr = pAddr + ( ( y * 160 ) + x * 2 );
 *pAddr = Text;
 *(pAddr+1) = eText;
}

void printxy( int x, int y, char * pText, Color eText )
{
 int iOffset = 0;
 while( *pText != 0 )

 {
  putchxy( x + iOffset, y, *pText, eText );
  ++iOffset;
  ++pText;
 }
}

int main()
{
 printxy( 10, 10, "출력하는 예제입니다.", C_RED );
 printxy( 10, 11, "미희야 사랑해", C_WHITE );
 getch();
 return 0;
}


출처 : http://blog.naver.com/312160/150023748818

'C/C++언어' 카테고리의 다른 글

템플릿 사용한 max 만들기  (0) 2008.03.03
<이클립스 디버그 방법>  (0) 2008.01.28
여러 C++ 컴파일러  (0) 2007.09.06
함수포인터란 ?  (0) 2007.09.06
[본문스크랩] 파일 입.출력  (0) 2007.09.06

+ Recent posts