문제

C ++로 작성된 Windows DLL에 대한 소스 코드가 있으며 시각적 구성 요소 라이브러리를 사용합니다. 이제 내 임무는이를 Linux로 포트하는 것이지만 VCL 자체에 대한 소스 코드 또는 모든 종류의 문서가 없습니다 (그리고 Borland C ++에서 작업 한 적이 없습니다. Windows Days에서는 MFC를 사용했습니다).

내 DLL에는 GUI가 없기 때문에 이것이 힘들지 않아야합니다. 내가 볼 수있는 한, 대부분 멀티 스레딩에 VCL을 사용합니다. 나는 tthread에서 물려받는 수업에 부딪쳤다. 그리고 그것이 내가 붙어있는 곳이다. 인터넷에서 약간의 검색을했지만 지금까지 VCL에 대한 문서는 찾지 못했습니다. Borland C ++ Builder에서 책을 사지 않기를 바랍니다. 아마존에서 도착할 시간이 없기 때문입니다. 직장에는 Linux 상자 만 가지고 있기 때문에 Windows 용 패키지 구매를 고려할 수 없습니다.

제안이 있습니까?

도움이 되었습니까?

해결책

VCL은 문서화되어 있습니다 CodeGear의 웹 사이트. 특히 tthread는 설명됩니다 여기.

VCL의 스레딩 관련 구성 요소에 대한 문서가 다소 드물다는 것을 발견했습니다. 이 지역 스레딩에 대한 Delphi/VCL 접근법에 대한 훨씬 더 나은 설명이 있습니다.

다른 팁

부스트 라이브러리 및 WXWIDGET는 VCL 클래스에 아날로그를 제공합니다.

C ++ Builder가 사용하는 VCL은 전적으로 Delphi/ObjectPascal에 작성되었습니다. C ++ Builder 앱에는 모두 C ++가 Delphi 기반 라이브러리를 사용하여 포함됩니다.

Freepascal/Lazarus 오픈 소스 프로젝트는 대부분의 VCL (거의 모든 비 시각적인 것들과 많은 시각적 물건)을 리버스 엔지니어링했으며 Linux에서 기본적으로 실행됩니다. 비 시각 VCL 호환 물건은 "무료 구성 요소 라이브러리"( "FCL")로 알려져 있습니다.http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

FCL에서 Tthread 구현의 출처는 쉽게 찾을 수 있어야합니다.

한 가지 옵션은 Freepascal에서 다시 쓰는 것인데, 여기서 언어는 ObjectPascal로 변경되지만 VCL에 대한 호출 및 VCL 구성 요소 사용은 사실상 동일합니다.

또 다른 옵션은 Linux에서 C ++로 포트하고 C ++에서 Freepascal의 VCL을 사용하는 것입니다. 나는 그것의 실용성/타당성을 확신하지 못한다. Freepascal 포럼의 누군가가 그 대답을 도울 수 있어야합니다.

따라서 누군가가 언급 한 또 다른 옵션은 다른 스레딩 라이브러리를 사용하여 다시 작성하는 것입니다.

당신은 그들의 다운로드 할 수 있습니다 무료 컴파일러 그리고 그것을 실험 해보십시오. 적어도 와인 아래에서 실행할 수 있어야합니다. 어쩌면 Freedos 아래에서도.

Delphi/Kylix의 Tthread 클래스와 관련이 있어야합니다. 그것은 그것을 탐색하기위한 또 다른 대안입니다. 가장 중요한 방법은 run () 및 sync ()라고 생각하지만 사용한 이래로 오래되었습니다.

그러나 코드를 Linux로 깨끗하게 포팅하려는 경우 일부 부스트 라이브러리를 사용하여 Tthread 클래스를 직접 재 구현하는 데 도움이 될 수 있습니다.

몇 년 전 Borland는 Linux에 대한 IDE 버전을 출시했으며 카일 릭스. 나는 그것이 여전히 뒷받침되는지 확실하지 않지만 그것은 당신에게 최소 저항의 경로 일 수 있습니다.

Boost (www.boost.org) 또는 Ace (EG Boost) 또는 Ace (http://www.cs.wustl.edu/~schmidt/ace.html)

이러한 스레딩 인프라 중 하나를 사용하려면 코드를 포트하는 것이 매우 쉬워야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top