L 은 far를 나타냅니다.
P 는 point를 나타냅니다.
예로서 PBYTE와 LPBYTE 라는 것은 이렇게 정의 되어 있습니다. (borland builder 기준)
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
PBYTE는 BYTE 타입의 near형 포인터이고 LPBYTE는 BYTE 타입의 far형 포인터입니다.
더 많은 윈도우용 형선언부분을 보실려면 사용하시는 컴파일러에서 windef.h파일을 찾아서 열어보시면 됩니다.
구조체 선언하면서 끝에 보인 WSADATA 는 선언된 후 부터는 하나의 데이타 타입처럼 동작하죠?
마찬가지로 포인터 타입처럼 LPWSADATA가 동작합니다. 포인터라고 알려주기 위해 *가 들어간것이죠
mfc에서 보이는 theApp는 실제로 내부에 winmain()함수를 가지고 있습니다. 우리는 theApp를 통해 winmain()을 호출하는 것이지요.
CHelloApp theApp; 에서 CHelloApp는 클래스의 이름인 것이고 theApp는 CHelloApp클래스의 하나의 인스턴스가 되는 것이죠 마치 int instance와 같은 것입니다. CHelloApp는 클래스 타입(int와 같은), theApp는 인스턴스(instance와 같은)...
이상입니다. 허접한 설명이라 이해에 도움이 될런지 모르겠습니다. ^^
C초보 님이 쓰신 글 :
: C에서
: near, far, huge pointer는 보았는데
: c++,vc++을 하다보면
: 접두사로 LP....이라고 나오는데
: 이것이 롱포인터 라고 하네요
: 롱포인터 뭐하는 포인터인지 이해가 않됩니다.
: long형 포인터인가요?
:
: 그리고 구조체 선언하면서
: struct WSADATA s(
: 변수
: 변수
: )WSADATA, *LPWSADATA;이렇게 해놓고
:
: 함수호출(WDRD s, LPWSADATA Wsa); 인자로 하면
: LPWSADATA Wsa 이곳에 포인터가 와야한다네요
: *LPWSADATA 이면 LPWSADATA 이것이 포인터 같은데
: 이렇게 포인터로 LPWSADATA Wsa 변수선언하는거 같네요
: 이런것들이 잘 이해가 않되네요.뭐가 뭐하고 있는 것인지 이해가 잘 않되요
:
: 그리고 추가로
: mfc를 조금 하다보니
: main, winmain이 않보이네요 어디서 찾을수 있을까요?
: mfc에서 CHelloApp theApp;이것만 하나 보이네요, 이것이 객체 선언한거 맞죠
: 여기에 뭔가 있을듯도 한데요
: 그런데 다른거 아무것도 없이 이렇게 객체하나만 선언해놓고, 다른 클래스들은 몽땅있고
: 다른거 없이 클래스로 객체 하나만 선언해도 그 객체에서 생성자호출하니까
: 생성자에 이것 저것 호출하게 하면 그냥 다른거 없이 실행되는거 맞나요?
: c에서
: main()
: {변수하나만 선언
: return 0} 이렇게되는거하고 비슷한거 맞나요,,,
: 클래스만 몽땅 선언해놓고 객체선언 않하면 않되죠
: main()
: {클래스 들만 몽땅 선언하고
: 객체선언않함
: return 0};이러면 않되죠
: main()
: {클래스 들만 몽땅 선언하고
: class 객체
: return 0};이래야 되는거 맞죠?
: 그래서 mfc 에서 상속이니 뭐니하면서 클래스들 많이 선언해놓고
: 달랑하나 CHelloApp theApp 객체 선언해 놓은거죠
: 초보라서...쉬운 설명 부탁드려요
|