감사합니다.
cocos님 오늘 오전에 들어가서 말씀하신데로 했더니 잘 되더군요...
정말 감사합니다.
cocos 님이 쓰신 글 :
: : 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로 한번 바꾸어 보십시요.
: 내용중에 한번은 실행이 된다는 말이 있으니 위 방법으로 처리가 될 것으로 보입니다.
:
: 함수호출규약에 대해서는 검색을 해 보시면 되리라 생각이 됩니다.
:
: 제목의 애타는 마음을 너무나도 잘 알기에 이 방법이 맞지 싶어서 답글을 달아 봅니다.
|