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
[12179] Re:전에 한번 올렸던 질문입니다. 미칩니다 아주... 고수님들 부탁 드릴께요..
cocos [cocos] 1490 읽음    2008-08-26 16:50
: C쪽 Dll은
: extern "C" __declspec(dllexport) int GetResultData(float *Coeff, unsigned long *Size, unsigned char *Data, int* Flag)
: {
:    
:     //::SetFocus(pMainProc->m_hWnd);
:     return pMainProc->GetResultData(Coeff, Size, Data, Flag);;
: }
: 이렇게 되어 있습니다.
:

이곳에서 좋은 정보를 많이 얻어 도움을 받고 있던 사람입니다.
위와 같은 문제를 겪어 본 적이 있어 이렇게 답글을 달아 봅니다.

문제는 함수호출규약이 델파이와 C가 서로 달라서 일어나는 문제로 보입니다.

우선 C에서 위와 같은 형태로 Dll을 만들었다면 기본적으로 호출규약이 __cdecl형태로 됩니다. 따라서 델파이에서
위 함수를 불러줄때는 stdcall로 불러주시면 안되고 cdecl형으로 불러 주셔야 합니다.
아래글을 잠시 읽어보니 델파이에서 함수를 호출할때 stdcall로 불러주시는 것 같던데 cdecl로 한번 바꾸어 보십시요.
내용중에 한번은 실행이 된다는 말이 있으니 위 방법으로 처리가 될 것으로 보입니다.

함수호출규약에 대해서는 검색을 해 보시면 되리라 생각이 됩니다.

제목의 애타는 마음을 너무나도 잘 알기에 이 방법이 맞지 싶어서 답글을 달아 봅니다.

+ -

관련 글 리스트
12178 전에 한번 올렸던 질문입니다. 미칩니다 아주... 고수님들 부탁 드릴께요.. 김용하 1685 2008/08/25
12179     Re:전에 한번 올렸던 질문입니다. 미칩니다 아주... 고수님들 부탁 드릴께요.. cocos 1490 2008/08/26
12180         Re:Re:전에 한번 올렸던 질문입니다. 미칩니다 아주... 고수님들 부탁 드릴께요.. 김용하 1541 2008/08/26
12181             Re:Re:Re:전에 한번 올렸던 질문입니다. 미칩니다 아주... 고수님들 부탁 드릴께요.. cocos 1530 2008/08/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.