2014-06-15 11 views
0

저는 Delphi XE5부터 시작하여 하나의 exe와 여러 개의 재사용 가능한 라이브러리에서 응용 프로그램을 분할하고 싶습니다. 즉, DLL 또는 런타임 패키지에서 실행중인 * .exe 응용 프로그램을 분할하고 싶지 않습니다.Delphi 솔루션을 재사용 가능한 런타임 패키지로 분할하는 방법은 무엇입니까?

이를 달성하기는, 내가 델파이에서 우리는 런타임 패키지를 만들 수 있다는 것을 본 나는 다음과 같은 단계를 수행 :

  1. 나는 새로운 VCL은 양식 응용 프로그램 프로젝트 (EXE 프로젝트를) 만들었습니다.
  2. 프로젝트 그룹에 새 패키지 프로젝트 (BPL 프로젝트)를 추가했으며 프로젝트 옵션을 수정하여 사용 옵션을 '런타임에만'으로 설정하고 컨트롤을 '명시 적으로 다시 빌드'로 빌드했습니다.
  3. EXE 프로젝트와 BPL 프로젝트 간의 종속성을 추가했습니다 (EXE 프로젝트는 BPL 프로젝트에 따라 다름).
  4. 마지막으로 BPL 프로젝트를 컴파일하고 생성 된 DCP 파일을 EXE 프로젝트 (프로젝트 옵션/패키지/런타임 패키지)의 런타임 패키지로 추가했습니다.

    [치명적인 오류 DCC32] ModuleX.pas : 나는 BPL 프로젝트에서 모듈 (예를 들어 MODULEX)를 사용하는 EXE 프로젝트에 참조를 추가 할 때

그러나, 컴파일러는 나에게이 같은 오류를 제공 (7) : F1026 파일을 찾을 수 없음 : 'C : \ DDDProject \ MyEXEProject \ ModuleX.dcu'

EXE 프로젝트 (MyEXEProject)에서 '런타임 패키지와 링크'옵션을 선택하면 솔루션은 오류없이 컴파일됩니다 하지만 응용 프로그램을 실행하거나 디버깅 할 수는 없습니다.

제발 도와주세요.

답변

0

DLL 또는 런타임 패키지에서 실행중인 * .exe 응용 프로그램을 분할하고 싶지 않습니다.

런타임 패키지 BPL 파일 DLL입니다. 이것이 여러 EXE에서 공유 될 수있게 해줍니다. 그들은 내장 특별 VCL/FMX 처리 가진 다만 정상적인 DLL이 있습니다. 용으로 컴파일 할 경우

당신은 옵션 "런타임 패키지 링크"를 가능하게

, 당신은 파일 SO 당신의 BPL 파일을 EXE 파일을 연결 (또는 DYLIB되거나 Windows 이외의 플랫폼), BPL 파일 (및 rtl190.bpl 및 vcl190.bpl과 같은 다른 BPL 파일)을 EXE 파일과 함께 배포해야합니다. 따라서 EXE 파일을 실행하려면 EXE의 폴더에 있거나 적어도 OS search path에 있어야합니다.

"런타임 패키지와 연결"옵션을 비활성화하면 패키지 코드가 정적으로 EXE 파일에 직접 연결되므로 EXE 프로젝트의 검색 경로에 패키지의 DCU 파일이 포함되도록해야합니다. 있습니다.

당신이 대신 런타임 패키지의 다음 정적 라이브러리 (A LIB 파일)을 생성, 재사용 가능한 라이브러리 아니지만 BPL을 만들려면

. 그런 다음 필요에 따라 LIB 파일을 여러 프로젝트에 추가 할 수 있습니다.