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
[38745] VC++ *.lib 파일을 사용하는 DLL 을 제작중에 문제입니다.
Falco [falco] 1968 읽음    2005-01-13 11:50
ICE_API.zip 8.4KB VC++ 용 .h, .lib 파일
현재 프로젝트를 Delphi로 진행중인데, 마그네틱 카드 발급기를 사용하게 되었습니다.

그런데, 발급기 SDK 에는 VC++ 용으로 제작된 .h 파일과 .lib 파일만 있습니다.  dll 파일은 없구요.

그래서 .lib 파일을 Delphi에서 바로 사용할 수가 없어서 BCB 로 .lib 파일을 사용할 수 있는 Wrapping dll 을 만들어서 Delphi 에서 사용할려고 합니다.

coff2omf 로 .lib 는 빌더용으로 만들었구요.

새 dll 프로젝트를 실행해서 프로젝트에 .h 파일과 .lib 파일을 add 해서 컴파일은 되었습니다.

근데, lib에 있는 함수를 밖으로 빼 내는 과정에서 링크에러가 나는군요.

// SetTopCoatMode 함수를 사용하도록 dll 함수만 선언
extern "C" __export __stdcall BOOL SetTopCoatModeW(HDC hDC, BOOL bEnable)
{
  return SetTopCoatMode(hDC, bEnable);  // .lib 파일에 있는 함수 호출
}
위와 같이 dll 을 제작했는데

[Linker Error] Unresolved external '_SetTopCoatMode' referenced from ....\UNIT1.OBJ
와 같은 에러가 발생하였습니다.

함수선언문에서 extern "C" __export __stdcall 이 부분을 빼고 컴파일 하면 컴파일은 되더군요. -_-;

선언을 잘못 한건가요?  오랜만에 BCB를 잡아보니 영~ 적응이 잘 안되서요.

원인을 가르쳐 주시거나 혹은 .lib 를 델파이에서 사용하는 더 쉬운 방법 등의 아이디어가 있으시면 조언 부탁드립니다.

혹시나 해서 원본 .h 파일과 .lib 파일을 함께 올려봅니다.  고맙습니다.

+ -

관련 글 리스트
38745 VC++ *.lib 파일을 사용하는 DLL 을 제작중에 문제입니다. Falco 1968 2005/01/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.