2011-09-29 2 views
0

다른 기능을 가진 세 가지 프로그램 (하나는 C++ + WinAPI, 다른 하나는 C# .NET, 마지막 하나는 Java)입니다. 나는 하나를 고르고 다른 두 가지 기능을 구현하려고합니다. 어떻게 든 병합 할 수 있습니까? 하나의 프로세스 (적어도 시각적으로) 아래에 하나의 GUI에 있어야합니다. IPC는 문제가되지 않습니다. 아무것도다른 언어의 프로그램 병합

+0

"병합"이란 무엇을 의미하는지 더 설명해주십시오. – m0skit0

+0

나는 정말로 확신하지 못한다. 선택한 프로그램의 GUI 인 하나의 GUI에서 실행할 수있는 모든 것. – Smejki

+1

아마도 귀하의 질문은시기 상조입니다. 왜 당신이 * 원하는 것을 먼저 알아 내고, 그런 다음 명확하고 형식이 좋은 질문을 던지십시오. –

답변

1

당신이 할 수있는 가장 쉬운 방법은 C#에서만 GUI를 만드는 것입니다. Windows Forms 또는 WPF를 사용할 수있는 클라이언트에서 ASP.NET WebForms 또는 ASP.NET MVC를 사용할 수 있습니다.

MVC (면도기)를 제외하고는 Visual Studio 내에서 GUI를 설계하고 사용자 정의하는 데 정말로 유용한 도구가 있습니다.

C++ 코드는 클래스 라이브러리에 래핑 될 수 있습니다. 또는 응용 프로그램으로 실행해야한다면 일종의 IPC를 통해 액세스한다고 말하면서 Java와 동일하지만 100 % 자유롭게 쓰고 다시 쓰려면 자바 코드를 C++로 이식하는 것을 상상해보십시오. 자바 코드가하는 일에 따라 쉽지도 어렵거나 불가능할 수도 있습니다.

C++ 및 Java 응용 프로그램 모두 분리되어 있어야하며 동일하거나 다른 컴퓨터에서 백그라운드로 실행해야하며 C# GUI에서 해당 서비스 나 방법을 계속 사용하려는 경우 IPC는 아마도 , 당신이 자바와 IPC로 윈도우에서 무엇을 할 수 있는지 확실하지 않은데, 자바는 XML 웹 서비스를 노출 시키거나 소비 할 수있다.

+1

감사합니다. 가장 고무적이었습니다. 그래, 나는 자유롭게 할 수있어. 중요한 것은 결과뿐입니다. – Smejki

0

당신은 발견 할 것이다 문제에 대한

감사는 각각 고유의 프로세스 모델을 가지고 있으며, 당신이 중 하나가 공존 할 프로세스 모델을 얻을 필요하거나 (프로세스 통신 몇 가지해야한다는 점이지만 사용자는 필요가 없다 그들을보십시오). 예를 들어 Java를 사용하면 "왕"이 될 수도 있고 다른 프로세스에서 일종의 하위 프로세스를 설정하거나 모든 호출에서 프로세스 모델을 설정/해제 할 수 있습니다. 어떤 접근 방식이 가장 좋은가는 부분적으로 "게스트"언어로 수행 할 작업의 복잡성에 달려 있습니다.

하나의 주요한 점은 하나의 언어 만 UI를 제어 할 수 있다는 것입니다. 일반적으로 다른 언어 UI가 공존하지 않으며, C# GUI에서 Java UI 객체를 가질 수 있는지 의심 스럽습니다. 적어도 외국 창구로 취급하지 않고.

+0

잘,이 다른 언어 과정에 정보를 보낼 새로운 UI 객체를 만드는 것이 가장 중요한 문제입니다. 구현해야 할 기능은 다음과 같습니다. RS-232 및 다른 포트에서 데이터를 가져 와서 그래프를 그려서 USB 캠에서 이미지를 보여 주며 이미지를 분석 한 후 어셈블러에서 제작 한 프로그램을 사내 PCB에 작성하고이 복잡한 통신 PCB 등 – Smejki

+0

당신은 네이티브 메소드 I/O 드라이버 등을 사용하기 때문에 별도의 프로세스 접근법 (아마도 IPC)을 사용하는 것이 가장 좋습니다. 필자는 Java와 C#을 혼용하려고 시도한 적이 없지만 같은 과정에서 그 수준에서 잘 진행 되기에는 너무 비슷합니다. –

0

프로그램을 다시 작성하는 데 가장 적합한 언어에 대해 이야기하는 경우 이는 전적으로 기본 기능에 달려 있습니다. Windows와의 통합에 주로 필요하다면 C#이 확실한 선택 일 것입니다. 당신의 주요 아이디어가 그것을 크로스 플랫폼으로 만드는 것이라면, 그것은 자바에서 가장 잘 이해할 것입니다.

IPC를 함께 사용하고 IPC를 사용한다면 IPC 프레임 워크에서 로컬 호스트의 소켓을 통해 사용자 정의 프로토콜까지 사용할 수 있습니다. 거기에 문제가 너무 많아서는 안되지만, 다른 언어의 부품이 얼마나 큰가에 따라 달라 지지만 시간을 들여 재 작성하는 데 비용이 많이들뿐만 아니라 유지 관리 부담도 적습니다.) 다른 프로세스에서 GUI를 제어하는 ​​것 또한 복잡합니다. 네이티브 캔버스 ID를 교차 프로세스로 전달하여 처리 할 수 ​​있지만 제대로 작동하기 어렵고 특히 안전하지 않을 수 있습니다. 유지 관리 관점.

+0

그것은 Windows 전용 프로그램입니다. 예, 재 작성은 옵션이지만 프로그램이 얼마나 복잡하고 시간이 얼마나 걸리는지 고려하면 피하고 싶습니다. – Smejki

관련 문제