2009-10-24 4 views
6

Windows 7을 사용 중이며 그래픽 응용 프로그램 (지형 편집기, 메쉬 뷰어 등) 용 GUI를 작성해야한다고 가정 해보십시오. DirectX 및 OpenGL (네이티브 C++로 작성). 목표가 다중 플랫폼 소프트웨어 인 경우 wxWidgets로 가야하지만 Windows 전용 응용 프로그램을 수행하고 있다고 상상해보십시오. 원하는 것은 무엇입니까? 그리고 왜?WPF, wxWidgets, Win32 API 및 MFC 중에서 선택

응용 프로그램이 XP와 Vista/7 모두에서 작동하고 WPF의 경우 UI가 관리된다는 것은 분명하지만 C++/CLI 프록시와 같은 클래스로 기본 함수를 호출합니다. 네이티브 및 네이티브 관리 원인 성능 문제에서 "수신 거부"가 발생 했습니까?).

답변

21

RAD Studio는 2010 년에 강화 된 작업

  • 을 만들 수 있습니다! 빠르게 건물 마이크로 소프트 윈도우 애플리케이션을위한 VCL (비주얼 구성 요소 라이브러리) 이제 윈도우 비스타, XP 원활한 윈도우 7 지원, 우아한 대체 호환성을 포함, 2000
  • 2010 년 강화! Windows Vista 및 Windows 7 API 헤더를 완전히 사용하려면 최신 Windows를 사용하십시오. 기능
  • 2010 년 신작!윈도우 7 Direct2D의 API에 대한 지원

당신은 또한 당신은 Qt는 C++에서 API가 너무이기 때문에, 심지어 Windows 전용 앱, Qt를 사용을 고려할 수 twinforms

+1

OP는 C++에 대해 언급 했으므로 RAD Studio에 C++ Builder가 포함되어 있음을 지적 할 가치가 있습니다. –

+1

네, 그 질문은 C++ 빌더와 VCL을 요구하는 것 같습니다. OpenGL은 기본적으로 지원되며 C++ Builder 용 DirectX 라이브러리는 www.clootie.ru에서 찾을 수 있습니다. –

2

은 관리 기본 및 네이티브 관리 원인 성능 문제에서 "수신 거부"됩니까? 당신은 (일반적으로하지 않는 게임) 단지 편집기를 쓰기 때문에

확실히,하지만 내가 아는 당신이 다이렉트 서브 시스템에 의해 렌더링에 대한

WPF 응용 프로그램을 걱정해야 일이 아니다. DirectX 만 사용한다면 좋은 선택이 될 것입니다.

7

WPF에서는 실제로 DirectX 셰이더를 사용하여 인터페이스 개체에 효과를 적용 할 수 있습니다 (here의 개발 측면을 자세히 설명하는 CodeProject 기사).이 지원이 계속 커질 것으로 예상되므로 WPF를 다음과 같이 선택합니다. 개발 플랫폼. 또한, 합리적인 노력으로 매력적인 사용자 인터페이스를 만드는 데 중점을 둡니다. 그래픽 기반 응용 프로그램을 작성하는 데있어 매우 중요하다고 생각합니다.

+0

. 지연이 너무 두드러집니다. 셰이프 및 다른 UIElements갑니다. 그래서 WPF 정말 평소 GUI 물건을 위해 좋은 것 같아요하지만 그것은 높은 성능 물건을 렌더링에 관해서는 interop을 사용하여 낮은 수준으로 이동하는 것보다 다른 방법은 없습니다. –

2

저는 C++로 Windows 기반 응용 프로그램을 만들 때 개인적으로 http://sourceforge.net/projects/win32-framework/을 사용합니다. 그렇지 않으면 내가 VB.Net 또는 C#을 사용하기 때문에 둘 사이의 코드를 쉽게 포팅 할 수 있고 폼 디자이너가 매우 유용합니다.

2
 
MFC  :: Just say NO for any kind of project. 
Win32  :: Well, I can not really recommend using it. 
wxWidgets :: I have used it and seen no problem, good choice. 
WPF  :: I have not and never will use it as it is .Net bound. 
FLTK  :: Also look at http://fltk.org/, probably has better OpenGL support. 
+0

WPF/.NET은 모든 (새로운) "Windows 전용 응용 프로그램"에 가장 적합한 옵션입니다. –

+1

@ Dan : 그는 그가 네이티브 C++ 코드를 많이 부르겠다고 언급하고 있습니다 .-) – Malkocoglu

+3

@ Dan - 이것은 간단히 잘못되었습니다. WPF는 definitelly * 새로운 * Windows 응용 프로그램을위한 최상의 옵션이 아닙니다. –

1

저는 wxWidgets에 대해서는 언급 할 수 없지만, WPF는 MFC와 좋은 오래된 Win32 API보다 훨씬 뛰어납니다. WPF는 렌더링을 위해 DirectX를 사용하며 일부는 3D support in WPF입니다. 불행하게도이 지원은 여전히 ​​다소 초보적이며 가장 능동적이지 않습니다. OpenGL을 렌더링하는 Windows Forms 컨트롤을 호스팅하는 경우 실제로 더 나은 3D 성능을 얻을 수 있습니다 (적어도 최근 작업 한 프로젝트에서이 작업을 수행해야했습니다). WPF 응용 프로그램에서 3D 렌더링을 수행하려면 XNA Framework를 살펴보십시오. .NET Framework의 다음 버전에는 WPF의 개선 사항이 포함될 예정이며 3D에 대한 지원이 개선 될 것으로 확신합니다.

12

C++ 기술에 익숙하다면 WTL을 사용하는 것이 좋습니다. 매우 가볍기 때문에 기계 코드가 희박합니다. Google 크롬 was written with WTL의 Windows 버전입니다.

+2

이것이 왜 투표에 실패했는지 확실하지 않지만 합법적 인 대답은 제안되지 않았습니다. +1 –

7

Delphi Prism와 wxWidgets에와 WPF를 만들 수 있습니다 잘 했어. Qt supports OpenGL이며 DirectX와 함께 사용할 수 있습니다.

+0

QT는 Direct2D 및 DirectWrite를 사용합니까? – Royi

9

Delphi 2010 (Rad Studio 2010)을 사용하면 개발 시간을 최소화하고 성능을 극대화 할 수 있습니다. 네이티브 실행, Windows 7 Direct2D API를 통한 직접 인터페이스 및 Windows 7에서 사용할 수있는 최고의 IDE/개발 환경 중 하나 일 것입니다. 그 밖의 무엇을 원하십니까?

래리 DREWS TheSoftwareRonin는

2

(널 소프트/윈앰프 명예의 저스틴 프랭클이 이끄는)을 Cockos 팀 WDL ("깍")를 확인하시기 바랍니다.

"WDL Virtual Window 시스템"이 포함 된 매우 가벼운 C++ 라이브러리입니다.

필자는 개인적으로 사용하지 않았지만 필자는이 소프트웨어로 만든 훌륭한 소프트웨어를 보증 할 수 있습니다. 매우 효율적이고 가벼운 앱.

링크 : 나는 시각적 레이어를 사용하여 사용자 정의 그리기 개체를 렌더링 WPF와 끔찍한 경험을 했어 WDL