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
[60727] Re:Re:c++빌더에서 dll 호출시 exeption class ...에러가 발생합니다. (그림첨부)
ben [ben82] 1348 읽음    2010-04-08 09:58
DD 님이 쓰신 글 :
: ben 님이 쓰신 글 :
: : dll 함수를 호출 하지 않았을 땐, 정상적으로 잘 동작하는데..
: :
: : dll 함수를 호출 하게 되면 오른쪽 모냥처럼 이상하게 실행되고 동작은 잘 되지만, 종료할때 항상 아래 그림처럼 에러가 발생합니다.
: :
: : 왜그런지 모르겠어서 이렇게 글을 올립니다. 음..
: :
: : dll 은 내부적으로 클래스로 구현되어 있습니다. 뭐 그냥 cpp 로 잘 쓰던 모듈입니다. 허흑;;
: : 뭐 간단하게 함수 만들어서 호출해도 똑같은 현상입니다.
: :
: : 왜 그럴까요.. ㅠㅠ;;
: :
: :
: : // dll을 사용하는 app 쪽입니다.
: :
: : #pragma comment(lib, "ctr_socket.lib");
: : #include "..\ClientTypeSocketDll.h"          // 아래쪽에 해더파일입니다.
: : 
: : //---------------------------------------------------------------------------
: : __fastcall TForm1::TForm1(TComponent* Owner)
: : 	: TForm(Owner)
: : {
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::BitBtn1Click(TObject *Sender)
: : {
: : 
: : 	DLL_TEST();
: :                 dll_test2_test2(10);    // 함수호출은 정상적으로 잘됩니다
: :  }
: : 

: :
: :
: :
: : 
: : #ifndef __CLIENTTYPE_SOCKET_H__
: : #define __CLIENTTYPE_SOCKET_H__
: : 
: : 
: : #include "GrobalDefine.h"
: : 
: : #define WINSOCK_CLIENTSOCK 	0
: : #define INDYSOCK_CLIENTSOCK 	1
: : 
: : 
: : #ifdef __cplusplus
: : 	extern "C" {
: : #endif
: : 
: : 
: : #ifdef CALLER_IMPORT
: : #define __CALLEE_API__  __declspec(dllimport)
: : #else
: : #define __CALLEE_API__ 	__declspec(dllexport)
: : #endif
: : 
: : 
: : __CALLEE_API__ void __stdcall DLL_TEST(void);
: : __CALLEE_API__ void __stdcall dll_test2_test2(int a);
: : 
: : #ifdef __cplusplus
: : }
: : #endif
: : 
: : 
: : #endif
: : 

:
:
: #pragma comment(lib, "ctr_socket.lib");
: 이건 이렇게바꾸세요
: #pragma link "crt_sorket.lib";
: 이걸로 바꾸세요
: 

: 그리고 라이브러리 파일을 빌더에포함시키시고
: 라이브러리 경로를 맞춰주세요 파일이있는위치욘
:
:  __CALLEE_API__ void __stdcall DLL_TEST(void);
:  __CALLEE_API__ void __stdcall dll_test2_test2(int a);
: 이부분에서 저같은경우는
: extern "C" __CALLEE_API__ void __stdcall DLL_TEST(void);
: extern "C"  __CALLEE_API__ void __stdcall dll_test2_test2(int a);
: 이렇게 하고있어요
: 감싸지않고 따로 쓰고있어요




우선 답변 진심으로 감사드립니ㅏㄷ.

#ifdef __cplusplus
	extern "C" {
#endif


#ifdef CALLER_IMPORT
#define __CALLEE_API__  extern "C" __declspec(dllimport)
#else
#define __CALLEE_API__ 	__declspec(dllexport)
#endif


 #pragma comment "ctr_socket.lib"  ;


두곳다 수정했고, lib 파일도 정확한 디렉터리에 넣었으나..
똑같네요.. 흑흑
음.. 왠지 코딩문제가 아닌것 같은 느낌은 .. .왜일까요?
혹시 dll 만드실때 저같은 문제 생기신적 없으신가요? 흠..
제가 하는 작업이 정적dll 만드는 작업인것 같은데..
혹시 같은 경우 생기신분 있다면 말씀쫌해주세요 ㅠ
다시한번 테스트 해봐야할것같아욤

+ -

관련 글 리스트
60708 c++빌더에서 dll 호출시 exeption class ...에러가 발생합니다. (그림첨부) ben 1210 2010/04/06
60725     Re:c++빌더에서 dll 호출시 exeption class ...에러가 발생합니다. (그림첨부) DD 1371 2010/04/08
60727         Re:Re:c++빌더에서 dll 호출시 exeption class ...에러가 발생합니다. (그림첨부) ben 1348 2010/04/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.