2011-12-21 3 views
2

lib 파일 용 API가 있습니다. lib 파일 .h 파일이 제공되었습니다. 이제 Delphi에서 lib 파일을 호출하고 해당 기능을 사용하려고합니다. 는 delphi에서 lib 파일을 사용합니다. lib 파일을 가져 오는 방법

어떻게 lib 디렉토리 파일은 델파이에 연결됩니까? 갱신

: 작업의 확인을 충당가 주위에 필요, 내가 DLL을 어떻게 얻는 경우에? 어떻게 델파이에 연결합니까?

답변

5

lib 파일을 사용하여 Delphi에서 DLL에 연결할 수 없습니다. .lib 파일은 DLL의 C 또는 C++ 클라이언트에서 사용됩니다. 델파이에서

은 수동으로 external 키워드를 사용하여 파스칼 수입 단위로 .H 헤더 파일을 변환해야합니다. Delphi 소스의 Windows.pas 유닛에 대한 예제입니다. 사실 .lib 파일을 사용할 수 없다는 사실은 큰 문제가 아닙니다. 왜냐하면 .h 파일을 무엇이든 상관없이 번역해야하기 때문입니다.

+1

이 대답은 컴파일 된 DLL 파일을 관련 LIB 파일에 사용할 수 있다고 가정합니다. 사실 LIB 파일이나 DLL 파일 중 하나로 컴파일 할 수 있습니다. DLL 파일을 사용할 수있는 경우 관련 헤더 파일 (.H)을 변환하기 만하면됩니다. 그러나 코드가 LIB 파일에서만 사용 가능 해지면 소스를 Delphi (사용 가능한 경우)로 완전히 변환하는 것이 Delphi에서 사용되는 데 필요합니다. 즉, 델파이가 .LIB를 지원하지 않았다는 것은 불행한 일입니다. 다른 많은 컴파일러들이 꽤 오랫동안 지원해 왔지만 말입니다. 당신은 C 컴파일러 – Glenn1234

+0

@glen 정적 링크 : 기호가 이렇게 보이지 않는 후 수출 플래그로 선언 될 수 없습니다 AFAIK? –

+0

@ 데이비드와 DLL로 lib 디렉토리에 링크 단지 수 lib에는 –

0

Agner Fog (http://www.agner.org/optimize/?e=0,34,36 참조)에서 .obj 파일에 이르는 개체 파일 변환기와 같은 도구를 사용하여 .lib 파일의 멤버를 추출 할 수있는 경우가 있습니다.

구문은

이 objconv.exe libname.lib -lx

모든 회원을 추출하는 것입니다.

모든 회원을 추출하여 누락 된 어떤 회원이 없음을 보장 할 수 있습니다. 그러나 다른 .lib 파일에 대한 종속성이 더있을 경우 이러한 변경 사항은 해결되지 않으므로 수동으로 해결해야합니다.

또한 헤더 파일을 번역해야합니다.

참고 : 개체 파일 형식도 변환 할 수 있습니다. 델파이는 OMF 만 이해하고 인텔 컴파일러는 COFF 만 빠져 나간다. 따라서 공구에 의해 수행 될 수있는 변환이 필요합니다.

컴파일러가 오류 메시지 (많은 경우 메시지가 자극적이며 오해의 소지가 있음)가 도움이되지 않기 때문에 특정 경우에만 작동하며 확실하게 전문 지식이 필요합니다.

관련 문제