2008-11-09 4 views
4

저는 Linux로 포팅 할 Windows C++ 응용 프로그램을 만들었습니다. 이를 수행하는 주된 이유는 IT 직원이 시스템을 쉽게 유지 보수 할 수 있기 때문입니다. 이 응용 프로그램을 실행하는 하나의 Windows 시스템 외에도 우리는 Linux 전용 운영 체제입니다.휴대용 응용 프로그램에서 Windows DLL 사용

이 응용 프로그램은 Windows API (dll 및 헤더)를 사용하여 외부 응용 프로그램에 연결된 서버에 연결하는 이유입니다. 이 연결은 내가 정말로 엉망으로 만들고 싶지 않은 독점적 인 프로토콜을 사용합니다. (그리고 나는 계약 상 허용되지 않습니다.) 그래서 나는 .dll에 붙어 있습니다.

이 dll은 dll의 Windows 소켓 특정 코드로 인해서 만 볼 수 있습니다. 그것과는 별도로 고급 기능을 많이 사용하지는 않습니다. 거기에 어딘가에 그냥 와인에서 리눅스에서 응용 프로그램을 실행하고 프로토콜을 스니핑하고 리눅스 응용 프로그램을 리눅스 머신에서 실행할 수 있도록 DLL을 직접 구현하는 사이에 있나요?

이 아이디어는이 item about QT creator에서 영감을 얻었으므로 저와 함께 놀 수있는 모든 솔루션을 추가로 사용할 수 있습니다.

+1

와인은 요즘 너무 완벽하기 때문에 Wine에서 이러한 프로그램을 실행하는 것이 가장 쉽습니다. 프로그램을 mingw 툴체인으로 이식 할 수 있다면, 윈도우즈를 필요로하지 않고 Linux에서만 계속 실행하고 실행할 수 있습니다. 표준 GNU make와 모든 것을 사용할 수 있습니다. –

답변

6

가장 확실한 중간 지점은 Winelib입니다. 나는 네이티브 DLL에 직접 링크 할 수 있는지 모르지만 그렇지 않다면 LoadLibrary()으로로드 할 수 있습니다.

다음 두 부분으로 응용 프로그램을 분할 할 수 있습니다 : DLL 만 호출하는 래퍼 및 나머지 코드가 래퍼와 대화합니다. 별도의 프로세스에서 둘 다 가질 수 있으므로 래퍼 만 Winelib로 컴파일해야합니다. 나머지 응용 프로그램은 원하는 프레임 워크를 사용할 수 있습니다.

관련 문제