|
안녕하세요 별로 돔이 못되드릴것 같군여...
별로 이상한게 없어 보입니다.
DLL 쪽에서 Export 한게 아래와 같이 __stdcall을 사용하셨다면
문제 없을거 같은데여.. 함수가 잘 호출되고 있고 단지 리턴값이 에러코드가넘어온다면
이건 VC++ DLL을 빌더에서 사용하는것에 대한 문제가 아니라
DLL 함수 로직상의 문제가 아닌가 싶은데요.. ^^;
서로의 호출규칙을 맞추고 나면 크게 어려움이 없을것으로 생각됩니다.
구조체 포인터가 마음에 걸려 저도 테스트 해봤으나 별이상없었습니다.
혹시 OpenData에 대한 구조체를 보여 주시겠습니까 저도 그 구조체로 테스트 해보죠...
그럼 별로 돔이 못되드려 죄송합니다.. 휘리릭~~~
Orune 님이 쓰신 글 :
: Visual C++ 에서 만들어진 DLL 을 C++ Builder 에서 사용하려합니다.
: 여태까지 몇몇 회사에서 만들어진 Visual C++ DLL 을 사용해서 프로그램을
: 만들었지만, 이번에 모회사에서 만든 Visual C++ DLL 은 좀처럼 작동이
: 되질 않네요.
:
: implib 를 이용하여 DLL 화일에서 lib 를 뽑아 C++ Builder Project 에 포함해서
: 컴파일까지 이상없이 됩니다. 물론 DLL 도 해당 경로에 존재하구요.
: 문제는 함수를 호출하면 함수가 제대로 작동이 되질 않습니다.
: coff2omf 로 변환해서 사용했지만 잘 되질 않고,
: implib -a 옵션을 붙여 사용해도 되질 않습니다.
:
: C++ Builder 에서 아래와같이 해더를 선언했습니다.
:
: extern "C" __declspec( dllimport ) __stdcall int OpenServer(int *gate, int invokeID,
: OpenData *openData,
: NameString serverName,
: int portNo,
: NetString networkType,
: ApplString appName,
: SyncMode_Def mode=ctmpV_SYNC);
:
: 위와같이 헤더에서 선언하고, __stdcall 을 없애보기도하고, 집어넣기도했지만,
: 위의 함수에서 인수전달이 잘 안되는지, 계속 에러값만 리턴합니다.
:
: Visual C++ 에서도 위와같은 방법으로 export하여 DLL을 생성했습니다.
:
: 혹시, 누구 이와같은 경험하신분 안계시나요 ?
: 매우 급한 거라서, 아무나 도와 주셧으면 합니다.
:
: 그리고, 테스트로 Visual C++ 에서 간단한 DLL 함수를 만들어 호출하는
: 프로그램을 만들었는데 테스트한 결과 C++ Builder 에서 잘 동작합니다.
: 하지만, 위의 구조체(OpenData)가 들어있는 함수는 실행하면 제대로 작동이 안되네요..
:
: Visual C++ 에서 DLL 생성시, C++ Builder 에서 지원이 안되는 경우는
: 어떤 경우가 있을까요 ?
:
: 도와주세요.
|