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

C++빌더 Q&A
C++Builder Programming Q&A
[6200] Re:[급질문]CYRIX CPU 정보 알아내는 소스인데 ASM으로 된 함수를 참조 하는 방법 좀 가르쳐주세여.
박세용 [] 2338 읽음    2001-03-19 22:18
C++에서 C의 함수를 호출하기 위해서는

extern "C" {

void aaaa( int bbb )

}

이렇게 해주면 C++ compiler가 aaaa라는 함수를 c의 호출형태로 사용하게 됩니다.

c++의 클래스를 디버그할 때나 어셈블리 형태로 보면

class TestClass
{
public
     void aaa( int b );
};

의 경우

    TestClass  aa;
    int         c;

    aa.aaa( c );   <-- 의 경우 aaa( &aa, c )의 형태처럼 호출이 됩니다.

그리고, 함수 호출시에 파라메터들을 어떻게 넘기느냐가 문제인데..

예전 C에서는 스택을 이용하는 것이 기본이었습니다.

하지만 지금 빌더 컴파일러에서도 파스칼형의 스택, C형태의 스택,

그리고, 레지스터를 통해 파라메터를 넘기는 방법 등 여러가지 방법이 있게 됩니다.

결국 어셈블리로 만들 함수를 호출하기 위해서는

위의 설명한 것처럼 extern "c"를 이용해서 C의 호출 형태를 사용한다는 것과

파라메터 넘기는 방법을 표준 C의 스택을 이용하는 방법으로 맞추어 주면

어셈블리로 만든 object화일과 C/C++을 연결할 수 있습니다.


+ -

관련 글 리스트
6179 [급질문]CYRIX CPU 정보 알아내는 소스인데 ASM으로 된 함수를 참조 하는 방법 좀 가르쳐주세여. 허접푸케케 2257 2001/03/19
6200     Re:[급질문]CYRIX CPU 정보 알아내는 소스인데 ASM으로 된 함수를 참조 하는 방법 좀 가르쳐주세여. 박세용 2338 2001/03/19
6184     Re:[급질문]CYRIX CPU 정보 알아내는 소스인데 ASM으로 된 함수를 참조 하는 방법 좀 가르쳐주세여. 최혜원.시리 2539 2001/03/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.