Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[6147] [답변] CLOSEMAN/ DLL 에서 FAR 나 STDCALL 의 의미를..
dashform [ ] 1109 읽음    1999-05-07 17:23
안녕하세요  꿈을 가진 소년 좋은생각입니다.

정말로 오랜만에 여길 왔군요...헤헤....

거두 절미하구...

함수(델파이에서는 함수와 프로시저 둘다)f 호출하는 방법에는  여러 가지 형태가

있습니다.  거의 대분분의 언어는 스택 영역을 그 통신 수단으로 사용하고 있는데

그 중에서도 호출되는 축과 호출하는 자 사이의 정보를 어더한 형태로 전달하는가를

델파이에서는 네가지로 분류하고 있습니다.

regiister
pascal
cdecl
stdcall
요 네가지 형태입니다.

쉽개 멀해서 dll함수를 임포트  할때나 익스포트 할때 그 함수 뒤에 붙일수 있는 수식

어 정도로 생각하시구요 일반적으로  아무런 지정자가 없으면 register를 가리킵니다.

이것은 속도를 위해서 필요할때는 스택을 사용하지 않고 바로 레지스터를 사용하여

호출하게 돕니다.

pascall과 stdcall의 가장 큰차이점은 함수 매개변수의 호출 순서에 차이가 있습니다.
function A(aa,bb,cc)...하는 함수 A가 있다고 할때

pascall형태는   aa,bb,cc형태로 전달되며 stdcall는 그반도로 이러어 집니다.

그리고 함수가 호출되고 난뒤 리턴될때 스택에    생성되어 있는 파라미터를 누가 삭제

하는 가가 관건인데 C나  C++같은 경우  호출한 함수가 제거하지만 v 파스칼과 윈도는

호출된 함수 자신이 제거하게 됩니다.

즉 위의 지정자는 외부에 정의 되어 있는 함수를  사용할때     의 그 규칙을 정의

한거라 볼수 있구요....

Neear, Far응隔痼?함수에대한 윈거리 호출에  관한 것입니다.

쉽개 멀하면  16bit에서는 한 세그먼트(  (64K)안에 데이타들이 존재하게 되는데

우리가 일반적으로 정의한 데이터와ㅏ 함수에 관한 내용들이 요 안에 있다고 생각하시면 됩니다.

하지만 릿摸?어플리케이션이낯떪?각각의 대아터?세그먼트를 가지기 때문에 다른 App의

데이터를 접근할려면 64K의 한계를 벗어 날수 있는 포인터가 있어야 되겠지요

끄때 사용하는 놈이 바로 Far입니다. 다시말해 원거리 포인터죠

자세한것은 냘飴?잘모르고 windows에관한 책이면 다설명이 되어 있는 내용입니다.

참고 하시구요

32bit인 운영체제에서는 이러한 ㅗ璣瘟?필요 없겠지요 당연히

하지만 호환을 위해서 Far도 여전히 지원을 하고 있습니다.

온라인상에 바로 적은 글이라 상태가 좋질 못합니다. 양해해주시구요

좋ㅎ은 하루 되세욧...

                               꿈의 언덕에서    /.좋/은/생//같?


+ -

관련 글 리스트
6147 [답변] CLOSEMAN/ DLL 에서 FAR 나 STDCALL 의 의미를.. dashform 1109 1999/05/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.