2010년/5월(15)
-
5월20일 C++(예외처리 try,catch,throw) API(멍때림)
기본적으로 C++에서 컴파일까지 다끝난후.. 링킹까지 끝나서 실행파일이 만들어 졌을경우... 오류가 발생하는경우가 있다. 그경우 여러가지 이유가 있는데 메모리 참조문제.. 크기 문제...등 이런 예외적인 일이 발생한다 그경우 단지 윈도우 경고창을 볼수 있는데 그경우외에 다른 방법으로 오류메시지를 처리하는방법이 있다. 기본적으로 오류가 되는부분을 찾아야한다. 위와같은 오류 발생이 된다. 그 발생코드를 약간 변경시키는 경우를 보는것이 2가지이다. throw와 try, catch() 일단 throw는 출력할 메시지를 말한다. 그래서 if(0>index) { throw "배열 범위를 초과하였음"; } if(sizesender=sender; this->description=description; this->inf..
2010.05.20 -
5월19일 C++(const, static,virtual,동적바인딩,순수가상함수 API(라디오박스,에디트박스,콤보박스)
const 멤버 함수. 기본적으로 클래스의 함수를 const를 지정하였다. const는 기본적으로 상수로 강제적으로 상수로 변경하는것과 비슷하다. 그래서 함수를 상수로 변경한다는 과정에 그럼 무엇이 틀려질까? 일단 기본적으로class 안 변수에 i라는 변수에 9를 넣고 함수 안에서 i를 10으로 변경하고 출력했다. 왼쪽 값이 const 함수 관련해서 컴파일 불가 판정이 났따. 하지만 인자로 받은 a에 11로 변경후에... 값을 출력할때 아주 잘되었다. 물론 전역변수로 선언해서 값을 변경해도 가능하다. 클래스 안에서 변수만 그런것같다는 느낌이든다. static 함수의 호출 클래스 안에서 static같은경우 불러 올수 있다. 간단하다 일반적으로 함수는 클래스안에 생성되어있다. 그리고 사용하는곳이 클래스 밖이..
2010.05.19 -
5월18일 C++(pragma pack(1) 패딩,API(그래픽 DC 간략한정보,폰트 7장컨트롤)
기본적으로 패킷을 건져올렸을경우 ethernet같은경우는 그헤더파일이 존재하는데 모양은 위와 같다. 1바이트로 6개이며 이안에 목적지 물리주소(NIC주소)가 들어간다. 그리고 두번째 ether_shost[]안에는 출발지 물리주소가 들어간다. ether_type에는 다음 패킷의 타입인데 이는 상위 계층에서의 사용용도를 나타내는건데 그것에 대한 정의는 밑에 되어있다. 보다 시피 linux/if_ether.h안에 크기를 6으로 지정하였고 물리주소도 마찬가지로 보통 어떤형식인데 내 컴퓨터는 00:0C:29:43:6F:38로 MAC주소를알수 있다. 그리고 다음은 아까만 본 2바이트 타입인데 보통 0x800인가 IP와 0x806인 ARP를 많이 사용한다. 그래서 거의 정의로 되어있고 이부분은 패킷에서 건져올려보면 ..
2010.05.18 -
5월17일 C++(PCAP),API()
Protocol 규약/약속 TCP/IP 4Layer Ethernet 기본적으로 리눅스에서 제공하는 함수외에 다른 pcap 같은 라이브러리를 사용하여 할경우 뒤에 -lpcap을 붙여줘야 컴파일이된다. 빼주게 되면.. 링킹 에러가 뜬다. 리눅스에서 기본적은 네트워크 정보를 보기위해서 명령어가 ifconfig이다. 그리고 보다시피 물리주소와 논리주소 브로드캐스트주소라든지.. MTU(Maxium Transmission Unit)등 여러가지를 알아 볼수있다. 다음 도스창에서의 ipconfig이다. pcap_openlive() .. Linux같은경우. man통해서 거의 모든 정보를 알수 있다. 단.. 영어메뉴얼이다 ㅠ #include #include char errbuf[PCAP_ERRBUF_SIZE]; void ..
2010.05.17 -
5월14일C++(다중상속,virtual로 접근) API(그래픽...)
class Tico { publuc: car a; } 클래스안에 클래스르 넣으면 어떻게 될까~? 객체는 상속을 받을수가 있고 단일 객체도 있고 객체들이 모아놓은 객체도 있다. 그래서 객체안에 객체를 하나 구성으로 사용하여 클래스를 사용할수 있다; 상속도 다중상속도 있다. 우리가 어제까지 한 것은 단일 상속이다. Tip....Java는 단인상속만 가능하다~ class Tico : public car,test, 보다시피 SCA클래스에 iPrice 변수를 하나 생성했고 TIco가 다중상속을 받았다. 그리고 car클래스에서 iPrice와 SCA클래스의iPrice가 같다. 그래서 어느 클래스의 iPrice를 사용할때 스코프(::) 해야한다. Tip 자바에서 스코프를 extends
2010.05.14 -
5월13일(protected,상속) API(리소스)
생물 ->동물->척추->포유류->인간->인종->나 나라는 존재는 위에 상위 적 개념을 가지고 있고 일반적인 특성을 가지고 있다. 위로 올라갈수록 많이 추상적이기 때문에 이 추상적인 개념을 객체로써 가져오려고한다. Tico.h에서 Set_Color(void); 함수를 private로 바꾸었다. 그러면 이제 Set_Color(void)를 private이때문에 가져 쓸수 가 없다 하지만 사용하기 위해서는 Tico클래스가 car클래스를 상속받았기 때문에 사용하려는 Tico클래스에서 다시 public으로 void Set_Color()함수를 선언하고 Tico.c에서 기본 출력을 보았다. 다음은 출력화면이다. '배고프다' 출력되었다. 부모클래스가 private를 걸어도 자식클래스가 public으로 해서 사용가능하다...
2010.05.13