엠바카데로 기술 문서와 유튜브 영상입니다.

참고문서: 

http://docwiki.embarcadero.com/RADStudio/XE6/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE6#Packages_for_64-bit_Windows_Are_Now_Supported_by_C.2B.2BBuilder

C + + Builder에서 64 비트 Windows 용 패키지를 지원

C + + Builder XE6에서는 64 비트 Windows 용 패키지 생성을 지원하게되었습니다. 지금까지 C + + Builder에서는 32 비트 Windows 용 패키지 생성 만 지원했습니다. BCC64 컴파일러는 Win64 용. bpl 파일을 생성합니다. C + + Builder에서는 Mac 용. dylib 파일 및 iOS 및 Android 플랫폼 용 패키지를 생성하지 않는 점에 유의하십시오. 이러한 플랫폼의 경우 정적 라이브러리를 사용할 수 있습니다.

Win32 패키지와 Win64 패키지의 차이점

  • Win64의 경우 PACKAGE와 지정된 코드 요소가 현재 변환 단위에 정의되어 있으면, 컴파일러는 그 코드 요소를 내 보냅니다. 클래스의 경우 구성원이 아닌 코드 요소가 하나라도 정의되어 있으면, 그 클래스를 내보낼 수 있습니다. 정의가 없으면 컴파일러는 코드 요소를 가져온 것으로 간주합니다. 이 동작은 Win32의 경우와는 다릅니다.
  • Win32와 Win64의 두 경우 모두 PACKAGE을 사용해야하지만 Win64에서는 정의가 존재하는 경우에만 내보낼 수 있습니다. 이 요구 사항은 패키지를 사용하는 측에 노출되는 것으로되어있는 변수, 함수, 클래스에 적용됩니다.

예 :

class PACKAGE TTEST :  public System :: TObject  { 
private : 
  int FProp ; 
  __ property int Prop =  { read = FProp, write = FProp } ; 
public : 
  __fastcall TTest ( void ) ; 
  __ fastcall virtual ~ TTest ( void ) ; 
} ; 
PACKAGE bool GoodieFlag ; 
PACKAGE void __ fastcall SuperFunc ( const System :: UnicodeString S ) ;

Win64 패키지 요구 사항

  • 패키지에서 구성 요소 클래스를 내보내려면 각 구성 요소에 비 인라인 멤버가 하나 이상 반드시 존재하게합니다 (이것은 Component > New Component 마법사에서 자동으로 이루어집니다) .
  • 이전 패키지의 출력 디렉터리 를 설정하여 Win32 패키지를 생성 한 경우 Tools > Options > Environment Options > C++ Options > Paths and Directories (C++)  페이지에서 Win64 프로젝트의 경우 경로를 변경해야 라고, Win32 패키지를 덮어 쓰지 않도록합니다.