7

¿Puede una aplicación Metro Windows 8 contener Ensamblador en línea? También es nativo de Metro C++, o administrado, ¿o puede mezclar ambos como C++/CLI?¿Puede una aplicación Metro Windows 8 C++ contener ensamblador en línea?

+0

no veo cómo sería útil si pudiera. ¿Vas a escribir tanto x64 como ARM asm? – ildjarn

+0

@ildjarn: Parece que la portabilidad de su código obviamente no es lo que está buscando. – LihO

+1

@ildjarn, solo curiosidad en esta etapa, pero sí, si quisiera, tendría que hacerlo, al igual que compilar binarios para diferentes objetivos, escribir código condicional para X64 y ARM. que no es un gran problema ya que en el pasado escribí Assembler condicional para MMX, Amd 3dNow, SSE, SSE2, SSE3, etc. todo en la plataforma x86. – klumsy

Respuesta

9

Las aplicaciones de estilo Metro usan WinRT, que es el reemplazo basado en COM de un WinAPI antiguo. Puede crear sus propios componentes de WinRT que se pueden usar desde .NET o incluso desde JavaScript, y no le cuesta esfuerzo extra. En cuanto al código C++ existente, tenga en cuenta que solo se proporciona un subconjunto de Win32 en WinRT.

enter image description here

No importa si usted código en C/C++, C# o JS, cuando se utiliza WinRT, no llama directamente a la WinRT y sale a través de una unión llamados proyección, que es lo que hace que sus componentes WinRT se expongan al otro idioma adecuadamente.

enter image description here

"¿Puede una aplicación Metro de Windows 8 contendrá línea ensamblador?"
Puede incrustar instrucciones en lenguaje ensamblador directamente en su código C y C++ porque su compilador le permite hacer eso. Observe Inline Assembler como un conjunto de instrucciones de ensamblaje escritas como funciones en línea, que son integradas en el compilador. El hecho de que esté utilizando WinRT es irrelevante aquí.

preguntas, que podrían ayudarle a:
Why is WinRT unmanaged?
C++, C# and JavaScript on WinRT
What are WinRT language projections?

+0

gracias. Sé que las API a las que puede acceder desde C++ son limitadas, solo me pregunto si puede hacer Assembler en línea. ¿Como un simple algoritmo de ASM, que es autónomo y no llama a ningún APIS? – klumsy

+0

@klumsy: Puede escribir Inline Assembler en su código C y C++ siempre que su ** compilador ** le permita hacer eso. Mira mi respuesta ahora – LihO

+0

No sé si pasará WACK, sin embargo. –

Cuestiones relacionadas