Windows RT용  Win32 Desktop Application을 개발할 때 필요한 라이브러리 파일들 입니다.

Windows RT의 System32 디렉토리에 위치해 있는 DLL들을 직접 LIB으로 변환한 결과물입니다.


DLL파일은 혹시나 필요하신 분들이 계실까봐 첨부한 것이며,

실질적으로 개발때 필요한것은 LIB 파일입니다.


LIB파일을 Visual Studio 2012가 설치된 경로에 붙여넣어 주시면 됩니다.



"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\arm"



 한가지 주의하실 점은, 절대로 기존에 존재하던 LIB을  덮어씌우면 안된다는 것입니다.

(다시 한번 반복하지만, 기존에 VS2012 의 LIB 폴더에 존재했었던 파일을 제가 올린 LIB으로 덮어씌우지 마십시오.)

DO NOT OVERWRITE ANY EXISITNG LIBS !!

(repeat: DO NOT OVERWRITE ANY EXISITNG LIBS, YOU MAY HAVE TO REPAIR/REINSTALL VS)



VS2012에서 ARM용 플랫폼을 타겟으로 해서 Win32 Application을 컴파일 하는 방법은 아래 링크를 참조하십시오.

How to compile desktop application for Windows RT




 Download LIBS for Windows RT   :    http://me2.do/5OLCxHMW


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
by Sone 2013.02.27 19:01

  이제 Microsoft Surface Tablet의 출시도 불과 9일남은 이 시점에서, Windows RT 플랫폼에서 돌아가는 애플리케이션에 대해서 관심을 가지시는 분이 여럿 계실것으로 생각이 된다.


http://surface.microsoftstore.com/store/msstore/Content/pbpage.Surface


위 URL은 미국에 거주하는 사람들을 대상으로 해서, Surface RT 예약구매를 진행하는 페이지이다.

스펙을 보면서, 문득 그런 생각이 들었다. 


- 흠, 언제던가 유투브에서 언리얼 엔진3 을 Windows RT 태블릿에서 구동시키는 모습을 본적이 있는것 같은데?

(http://www.youtube.com/watch?v=TGi6j3RkPLg)


- 어라, 그렇다면 Windows RT 태블릿도 어느정도 쓸만한 성능이 아닌가? 일단 NVIDIA T30은  Tegra Quad-core ARM processor를 의미한다. 시스템 메모리는 2GB가 채택됐다.ARM 시스템 치고는, 그렇게 부족한 사양은 아니다.


- 자, 사양이 쓸만하고 무게도 인텔 버젼보다 가볍고 메리트가 있다고 생각이 되었다. 사고싶다!


- 이제, 관건은 기존 x86 용으로 짜여진 프로그램이 소스코드의 리컴파일 과정을 통해서, 과연 Windows RT 에서도 정상적으로 구동될것인가?



  여기까지 생각한 뒤,  또 생각난것이  Visual Studio 2012 에는  Windows RT 개발을 위한 ARM Cross Compiler가 탑재되어져 있다고 들었다.

어라? 그렇다면, ARM을 위한 Native application을 짤수 있을까?

Visual Studio 2012 를 살펴보자.


먼저, 대충 Win32 Console Application 프로젝트를 생성한다. 그 뒤에, Configuration Manager로 들어간다.



ARM이 선택이 가능하다 !

세팅은 기존 Win32에서 가져오기로 하고, ARM플랫폼을 새로 생성한다.




자, 이제 타겟을 ARM으로 지정하고,  Hello World를 빌드해보자.



어라, Failed가 뜨면서 실패가 됐다. 에러메시지를 살펴보니 아래와 같았다.





그냥 간단히 말하면 , ARM에서 돌아가는 데스크탑 어플리케이션의 컴파일을 지원하지 않는다는 뜻이다.

구글링을 해보니, Visual Studio 2012 Beta에서는 이것이 가능했다고 들었는데, RC버젼부터 MS에서 막아놓았다고 들었다.

왜 막아놓았는지는 알수가 없다.




여하튼, 이 문제를 해결하기 위해서 또 구글링을 했더니, 아래와 같이 해주면,  Desktop application을 ARM용으로 컴파일할 수 있다고 한다.



Path : C:\Program Files (x86)\Windows Kits\8.0\DesignTime\CommonConfiguration\Neutral

Needed file : Windows.desktop.arm.props

Code : 

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>

    <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>

  </PropertyGroup>

</Project>





위 방법을 적용해서 아래와 같이 완료하였다.





이제 다시 빌드를 수행해보자.



오! ARM용으로 데스크탑 콘솔 애플리케이션의 빌드가 성공하였다.

이제, 테스트를 해야하는데.........Windows RT 태블릿이........없다! ㅠㅠ




제대로 ARM용으로 빌드되었는지 확인해보기 위해서, IDA로 속을 간단히 들여다보았다.

먼저, 빌드에 사용된 샘플 C 코드는 아래와 같다.


#include <stdio.h>

#include <tchar.h>

#include <windows.h>

#include <stdlib.h>


#define SAMPLE_TEXT _T("Hello World!\n")


EXTERN_C

__declspec(dllexport)

BOOL MyFunc (VOID)

{

TCHAR *lpTemp = NULL;

CONST TCHAR tcStr[] = SAMPLE_TEXT;


//

// Allocate new memory to save string

//

lpTemp = (TCHAR*)VirtualAlloc (

NULL,

((_tcslen(tcStr) + 1) * sizeof(TCHAR)),

MEM_COMMIT,

PAGE_READWRITE

);


if ( lpTemp == NULL ) {


// If failed to allocate ?

_tprintf(_T("Failed to allocate memory. (%d)\n"), GetLastError());

return FALSE;

}



__try {


//

// Copy string to target

// 

memcpy (

lpTemp,

tcStr,

_tcslen(tcStr) * sizeof(TCHAR)

);



//

// Print out string on screen

// 

_tprintf(lpTemp);


return TRUE;


}

__finally {


//

// Deallocate memory

// 

VirtualFree(lpTemp, 0, MEM_RELEASE);

}

}



int _tmain(int argc, _TCHAR* argv[])

{


if ( !MyFunc() )

{

return EXIT_FAILURE;

}



return EXIT_SUCCESS;

}




아래는 IDA로 뜯어본 화면이다.




ARM용으로 빌드가 아주 잘 되었음을 확인할 수 있었다.

이제 관건은, 이렇게 빌드된 ARM 데스크탑용 프로그램이  "특별한 라이센스나 제한 없이"  Windows RT 태블릿에서 잘 구동되느냐에 달려있을 것 같다. 만약에, 개인이 빌드한 RT용 데스크탑 프로그램이, 특별한 라이센스 없이 모든 유저의 RT 타블렛에서 정상적으로 구동된다면, Windows RT 태블릿은 앞으로 매우 기대될것으로 생각되리라. 왜냐면 특별히 x86 인라인 어셈블리나 Intrinsic을 사용하지 않은 이상,  그 프로그램은 리컴파일만으로 ARM용으로 그대로 포팅이 가능하기 때문이다.  필자의 생각으로는 MS에서도 , RT에서의 데스크탑 애플리케이션 실행을 굳이 막아두지는 않았으리라 생각된다. 만약에 이것을 막아놨다면 RT 태블릿의 메리트가 확 떨어지기 때문이다.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Study' 카테고리의 다른 글

How to compile desktop applications for Windows On ARM (Windows RT)  (7) 2012.10.17
by Sone 2012.10.17 04:59
| 1 |

티스토리 툴바