반응형
Chapter 1

1. C는 절차적 언어이며, 하향식이다 (규모큰 것에서 작은 것으로 쪼개나가기)
2. 간결성과 신뢰성, 유지보수가 용이하지만, 규모가 큰 경우 힘들었다.

3. C++은 새로운 데이터형인 class를 이용하여
4. class에 의해 생성되는 데이타구조인 object=객체 를 이요한다.
5. 객체를 표현하는 데이타부분과 데이타를 대상을 수행할수있는 동작부분(메쏘드)으로 나눈다.

6. 객체지향 프로그래밍이란, 객체를 저확하게 서술하는 클래스를 설계하는 것이다.
    저수준 -> 고수준 = 상향식 이라한다.

7. 데이타와 메쏘드를 함께 클래스에 정의 가능하며
8. 원시코드를 쉽게 작성하여 수고를 들고, 재사용이 가능
9. 정보를 은닉할 수 있어서 데이타를 보호할 수 있고,
10. 이름이 같아도 재정의가 가능하다 - 오버로딩
11. 상속을 이용하여 새롭게 정의할 수있고
12. C++ 템플릿을 이용하여 특정 테이타형에 국한되지 않는 범용적 설계가 가능한 장점이 있다.

13. 원시코드 - 컴파일러 - 목적코드 - 링커(o)_lib_시동코드 - 실행가능한코드(exe)

Chapter 2
1. #include <iostream> 신식 // #include <iostream.h> 구식
2. using namespace std; : using 지시자를 사용해서 이름공간을 셋팅한다
   ex) cout 은 원래 std::cout 임.
3. 매인함수의 return값은 운영체제가 처리하며 쉘스크립트나 배치파일을 설계할 수 있다.

Chapter 3 ~ 4
1. unsigned 변수시에는 음수영역대를 없애서 양수영역대로 늘림
2. const 상수 : 선언할 때 초기화를 같이 해주어야함.
3. #define과 다른점은 데이터형이 명확하고, 특정범위를 설정해서 범위를 제한할 수 있고,
4. 복잡한 데이타형에도 사용이 가능하다.

5. 산술연산은 수학의 순서를 따라감
6. 데이타변환 자동변환 되데, 강제변환은
   ex) int(name), (int)name 어떻게 사용해도 가능
7. 배열, int card[4] = {1,2,3,4};
           int card[] = {1,5,3,5};  // 원소갯수 = 4 = sizeof card / sizeof (int)
8. 문자열 마지막엔 Null문자가 들어감. char st[] = "abcdef"; - null이 마지막에 알아서 들어감
9. strlen() : 널문자를 제외한 길이를 알려줌
10. cin 은 문자열 끝을 빈칸, 탭, 개행문자와 같은 여백을 간주함. 그리고 null을 넣음.
11. cin.getline 은 엔터에 의해서만 문자열 끝을 간주(개행문자 들어올시 개행문자를 null로 바꿔 저장)
12. cin.getline( 변수명, size ) : size-1 만큼 변수이름에 문자열 저장
13. cin.get( 변수명, size ) : getline과 다르게 개행문자를 그대로 큐에 놔둔다.
14. cin.get( name, 10);   or cin 도 마찬가지
     cin.get( name2, 10);
     -> 두번째 get이 바로 개행문자(첫번째의 ..)를 만나면서 무조건 읽고 끝내버림.
15. cin.get( name, 10);
     cin.get();  -> 널문자를 미리 읽게한다.
     cin.get( name2, 10);
16. getline , get 에 할당된 길이보다 문자열이 더 길면 나머지 문자들은 입력큐에 그대로 둔다.
     failbit를 설정해놓고 더이상 입력받지 않음.
17. cin 도 개행문자를 저장한다.
     cin 이후에 바로 getline을 쓰면 입력큐에서 처음에 개행문자를 읽어 Null로 대채해서 저장.
18. struct s_name {   // 구조체 템플릿 생성
        int a;
        int b;
     };
     s_name name[] = {  //s_name name[0], name[1] 선언과 초기화
       {10, 20},
       {20, 30}
     };

19. union n_name{ // 공용체 템플릿 생성, 한시점에 한가지만 사용가능하다.
        int a;             // 가장큰 멤버의 크기로 공간이 설정되므로 메모리가 절약된다.
        long b;
        double c;
     };

20. enum const를 이용해 기호상수로 가능함.
     enum spectrum { a, b ,c ,d ,e ,f ,g }; // 0부터 기호상수가 자동으로 대입됨
     enum spectrum { a=1, b, c=10 .. }; // 명시적으로 대입이 가능함. 일부만 명시적이여도 가능.
     
     spectrum Abcd;
     Abcd = c;   // 열거체 변수에는 해당 열거체의 열거자(멤버)마 대입가능, 산술연산 불가능
     int color = d;     // int 변수에도 대입할 수있으나, 열거체에 int값을 따로 대입할 순 없다.
     d = 12; // 불가능하지만, 데이터형변환을 줘서 가능하게 할 수도있다.
     d = Abcd(12); // 가능, 하지만 열거자들 중에 최대값이 12이상이여야 한다. 범위제한

21. int *pt = new int; // int형을 저장할 메모리 할당 // 메모리 동적할당
     *pt = 1001; // 값을 메모리에 저장
     delete pt; // 메모리 해제, pt가 가리키는 메모리가 해제되지, pt를 못 쓰게 되는건 아니다.

22. int *ps = new int [100]; // int형 배열 동적 할당
     delete [] ps; // 배열 해제

23. struct inhlatable{    // 동적할당 구조체 멤버 접근 방법
       char name[20];
       float volume;
       double price;
     };

     int main(){        
     inflatable *ps = new inflatable;
     cin.get(ps->name, 20);   // 멤버 접근 첫번째 방법
     .....
     cin >> (*ps).volume;      // 멤버 접근 두번째 방법

24. 자동공간(auto) : 함수 안에서 정의되는 것들 함수 내부적에만 존재한다.
25. 정적공간(static) : 함수 외부, 내부에서 static 선언. 프로그램 실행동안 지속존재공간.
26. 동적공간(heap) : 메모리 할당과, 해제가 위치에 구애받지 않는다.


※ 5장 연습문제



#include <iostream>
#include <cstring>

using namespace std;

struct car{
 char name[20];
 int year;
};

int main()
{
 int count;
 cin >> count;
 cin.get();

 car *pt = new car[count];

 for(int i = 0; i < count; i++){
  cout << "자동차#" << i+1 << "\n";
  
  cout << "제작업체 : ";
  //cin.getline((pt+i)->name, sizeof((pt+i)->name));   //같다.
  cin.getline(pt[i].name, sizeof(pt[i].name));         //같다.  
 
  cout << "제작년도 : ";  
  cin >> (pt+i)->year;   //cin 사용했으니 get으로 널처리~
  cin.get();
 }

 for(i = 0; i< count ;i ++){
  cout << (pt+i)->year << "년도형 " << (pt+i)->name << "\n";
 } 

 delete [] pt;

 return 0;
}

    

반응형
Posted by Rainfly
l
반응형

아 이딴 fasoo drm 이게 뭐길래 도대체... -_-;;;
설마 파수닷컴이라는 회사에서 만든건가.... 이거말고는 모르겠는데? 싶었죠...

우선 Fasoo를 비롯한 fph.exe는....
바이러스도 아니고 스파이 웨어도 아니며, 웹보안프로그램 일종으로
관세청이나 국세청 등 공기관에 접속하다보면 자동으로 깔리는 프로그램들 중 하나입니다....마는...
그렇다고 좀비프로세스처럼 지워도지워도 지워지지 않으면
이건 솔직히 너무하잖아! 라고 생각하여... 지워보기로 했습니다 -_-;;;


어떤 프로그램을 설치해서 언인스톨하면 지워진다고 합니다. 그 게 아래와 같은 프로그램 -_-;;;
그리고 나서 C:\WINDOWS\Prefetch 안에 내용을 지우면.. 된다는데...

제가 해봤는데.... 전 그래도 살아나더라구요... 이런 줴길.... -_-;; 아놤닐 ㅓㅁ냉러민뢰ㅔ

근데 지금은 사라졌어요;;
우선 안전모드로 가서 하는 방법이 제일 안전한것 같긴한데.. 전 안전모드 안 썼구요..
대게 안전모드경우에는... 아래와 같은 절차를 거친 방법이 많이 소개되어있습니다.
해보실려면 해보시구... 제 핵심은 이것이 아닙니다. 아래루 쭉.....


< 기본적인 방법 그리고.. 안전모드 방법 >
1. 실행->msconfig으로 창을 띄워놓고 시작프로그램에서

             fph.exe해제 -> 적용 ->확인 -> 재시작 안하기
2. 작업관리자 에서 프로세스 탭에서 fph.exe 종료
3. Program Files - Fasoo - fph.exe 삭제
4. 휴지통비우기
 
이렇습니다. 하지만 거의 안되고  진행해도 프로세서를 죽이면 또 살아나고 이런식입니다.
만일 2번과 3번을 진짜 빠른속도로 진행가능하시면 굿이겠죠.. ^^ㅋㅋ
하지만?? 불가능하다고 봐야죠~
 
역시...  
이런거 작업하는데는 안전모드가 최고입니다.
 
안전모드 부팅 후
1. 시작->실행->msconfig 입력->확인->시작프로그램에서 fph.exe해제 -> 적용 -> 확인 -> 재시작 안하기
2. c:\Program Files\Fasoo어쩌구 폴더 통째로 삭제
3. 시작->실행->regedit 입력->확인->
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run에서 FPH.exe, 
    WinSPMsv.exe 삭제
4. 위 3번의 레지스트리편집기에서 찾기 기능(Ctrl+F)을 이용, fasoo나 WinSPMsv관련된 것 찾아서 전부 삭제.
    [찾기]" fasoo "한 후, F3 키 눌러 계속 찾아 10 여개의 값을 비우고 삭제하고 재부팅하니 깨끗하게 지워집니다.
    참고로 fph 로 찾으면 MS 프론트페이지 관련을 건드리는 불상사가 생기니 fasoo 로 찾으시고요.
5. 메가닥터 등 간단한 레지스트리 찌꺼기 찾아주는 프로그램으로 fph 찌꺼기 전부 삭제

제가 간단한 부가 의견... 제가 지우는데 있어서 키워드가 됐던 부분 -_-;; 말씀드릴께요.

프로그램은 안전모드로 가서 지우지 않아도 지워집니다. 진짜?
(결코 제 생각임.. 답이 아닐수도..)
지워지지 않는 이유는 프로그램이 실행중이여죠.
다만 프로그램이 2개가 실행중이라면, 이 중 하나는 죽이면 죽습니다.
다만 다른 하나는 죽어도 다른 하나가 무제한으로 살려줍니다.

구체적으로 정리하자면,
실제 해당 프로그램을 Worker Process 라고 하며
이 Worker Process가 죽으면 자동으로 살려주는 프로그램을 WatchDog Process라고 합니다.

일명 왓치도그(WatchDog)는 단순히 워커 프로세스를 감지하여 살려주는 기능만 합니다.

결론!!  fasoo DRM은 왓치도그와 워커프로세스가같이 있어서 암만 지우고, 작업관리자에서
없애도 살아나는겁니다 -_-;; 결론은 왓치도그 부터 죽여야 한다는것.

1. fasoo DRM의 watch dog 프로세스이름은 fservice 입니다. 이것을 먼저 지우고!

2. 그다음에 fph를 지웁니다. 여기서 지운다는 작업관리자에서 프로세스를 종료합니다.

3. msconfig에 가서 항목 체크를 해제합니다. (1,2번과 3번을 순서가 바뀔수도 있습니다.)

4. regedit에 들어가서 fasoo로 검색을 한후(컨트롤 F) 관련 레지 다 지웁니다.

안지워지면 어쩔수 없지만, 그래도 성공못하는 건 아니에요~

그리고 지금 사진아래에 있는 주소에 가서 저 씹어먹을 파일을 지워줍니다.

5. 자 대망에 Program files에 있는 fasoo drm 폴더를 깡그리 삭제합시다..

지워지셨나요? 핵심은 작업관리자에서 워커프로세스와 왓치도그를 차레데로 Kill 해버려려야
된다는거죠 ㅁㅇㄹ ㅁㄴㅇ러ㅏ ㅚㅏㅁㅈㄷ로먀ㅣ녀롲댜 ㅕㅐ랴조ㅑㅐ로재려ㅑ!!!!!!!!

수고하셨습니다. ㄱ-;

반응형
Posted by Rainfly
l
반응형

Visual C++ 6.0을 쓰는 도중.....

fatal error C1010: unexpected end of file while looking for precompiled header directive

가 뜬금없이 났다 -_-;;; 이 에러의 위치는..... main함수의 괄호가 없다라는 둥의 메세지던데 -_-;;;

졸라 짜증이..... 났지만.. 문제는 따른 곳에 있었다.

문법에 해당되는 오류가 아니였다. 메세지는 문법오류라고 해놓고는 닝기리~~

해결방법은 헤더파일이나 설정문제였다.

기존과는 다르게 싱글프로젝트로 생성을 하였더니.....

   #include "stdafx.h"

기본적으로 위와 같은 헤더파일이 등록되고 Include 되었었다.

근데 그냥 난 빼버렸거든 -_-;;;; 지우고....그래서 해결은....


1. 해당 소스파일에 stdafx.h를 포함하고 재컴파일 하던지....

2. 아니면 Project->Settings->C/C++탭->Category의 Precompiled Headers

Automatic use of precompiled headers선택후 재컴파일한다.



unexpected end of file while looking for precompiled header directive



있는 그대로 믿지말자 -_-;;

반응형
Posted by Rainfly
l
반응형

블래이드 앤 소울 일명 BnS 클로즈 베타 테스터 모집시기입니다.

기대했던 게임인만큼 과연 어떨지...

신청하세요 후딱~~~  빨리~  링크 클릭http://bns.plaync.co.kr/tester/apply

아래와 같은 기간... 이며 얼마 안남았으니 ㄱㄱㄱ



저도 블래이드앤소울 클로즈베타 테스터 신청했는데 -_-;; 될라나 모르겠넹;
반응형
Posted by Rainfly
l
반응형


블리자드 게임... 일단 와우 경우에
수 많은 데이타가 MPQ파일로 저장이 되어있습니다..

그 MPQ파일을 분해해서 데이타를 획득할 수 있는 프로그램입니다.

설치가 아니고 압축을 풀어서 해당 MPQ파일 지정해주면 되고요..

쉬운예를 들어서 와우 폴더안에 음원(배경음악)을 추출할 수 있습니다.

와우 실행중에는 절대로 안됩니다~~~ ㅋㅋ 아래는 다운 그럼 즐사용~

사진은 짤방~... 4.1patch 언제나옴? ㄱ-?


반응형
Posted by Rainfly
l