7

메트로 Windows 8 응용 프로그램에 인라인 어셈블러가 포함될 수 있습니까? 또한 Metro C++ Native 또는 관리되거나 C++/CLI와 같이 혼합 할 수 있습니까?Metro Windows 8 C++ 응용 프로그램에 인라인 어셈블러가 포함될 수 있습니까?

+0

당신이 수 있다면 유용 할 것이다 표시되지 않습니다. x64 및 ARM asm을 모두 작성 하시겠습니까? – ildjarn

+0

@ildjarn : 코드의 이식성이 분명히 그가 원하는 바가 아니라고 보입니다. – LihO

+1

@ildjarn,이 단계에서 궁금한 점이 있지만 그렇다고해서 다른 대상에 대한 바이너리 컴파일과 마찬가지로 X64와 ARM 용 조건부 코드를 작성해야합니다. 과거에는 MMX, Amd 3dNow, SSE, SSE2, SSE3 등의 조건부 어셈블러를 x86 플랫폼에 작성한 이후로 큰 문제는 아닙니다. 덕분에 – klumsy

답변

9

Metro 스타일 앱은 이전 WinAPI를 COM 기반으로 대체 한 WinRT를 사용합니다. .NET 또는 JavaScript에서 사용할 수있는 자체 WinRT 구성 요소를 만들 수 있으며 추가 작업이 필요하지 않습니다. 기존의 C++ 코드에서 WinRT에는 Win32의 하위 집합 만 제공됩니다.

enter image description here

그것은, C/C++, C# 또는 JS에서 당신 여부 코드를 중요하지 않습니다 당신이 WinRT를 사용할 때, 당신은 직접 WinRT 호출하지 않지만 그것은이 투사라는 바인딩을 통과, WinRT 구성 요소가 다른 언어에 적절히 노출되도록 처리하는 것입니다.

enter image description here

"는 메트로 윈도우 8 응용 프로그램은 인라인 어셈블러를 포함 할 수 있습니까?"
은 컴파일러에서 허용하는대로 어셈블리 언어 지침을 C 및 C++ 코드에 직접 포함시킬 수 있습니다. 컴파일러에 내장 된 인라인 함수로 작성된 어셈블리 명령어 세트로 인라인 어셈블러를 살펴보십시오. WinRT를 사용하고 있다는 사실은 여기서 부적합합니다.

질문, 그 당신을 도울 수 :
Why is WinRT unmanaged?
C++, C# and JavaScript on WinRT
What are WinRT language projections?

+0

. C++에서 액세스 할 수있는 API가 제한되어 있다는 것을 알고 있습니다. 인라인 어셈블러를 사용할 수 있는지 궁금합니다. 간단한 ASM 알고리즘처럼 자체 포함되어 있으며 APIS를 호출하지 않습니까? – klumsy

+0

@klumsy : ** 컴파일러 **에서 그렇게 할 수있는 한 C 및 C++ 코드로 인라인 어셈블러를 작성할 수 있습니다. 지금 내 대답을 확인하십시오. – LihO

+0

그러나 WACK이 전달되는지는 알 수 없습니다. –