WinRT이것 저것 해보고있는데,
C++/CX Metro App 에서는 ATL COM으로 만든 DLL은 사용못하는건가요?
자동화서버 등록도 정상적으로 되고,,
C++/CX에서 include <atlcomcli.h> 해서 CComPtr 으로 CreateInstance해서 클래스가 등록돼 있지 않다고 나오네요..
이전에 사용하던 것들을 간단하게 메트로용으로 재컴파일한다건가 불가능하겠죠...
Comment 2
-
ivoryguard
2012.04.16 11:24
데스크탑용 윈도우 어플이 Win32 API를 기반으로 하고 있다면 메트로 스타일 앱은 WinrRT API를 기반으로 합니다.
제가 C++ 개발자가 아니라서 WinRT의 C++ 쪽은 자세히 들여다보지 않았는데, ATL COM 컴포넌트는 바이너리 레벨에서 WinRT와 호환되지 않기 때문에 매트로 스타일 앱에서 호출이 불가능할 겁니다. 따라서 기존 VC++ 소스를 WinRT에 맞게 포팅하지 않는 이상 그대로 사용할 수 없습니다.
메트로앱은 자체 샌드박스 안에서 실행되는 예를 들면, 실버라이트와 유사한 형태의 앱 플랫폼입니다.
메트로 모드가 아니라, 데스크톱 모드에서는 위의 방식이 가능하겠습니다만, 샌드박스 & 보안상 메트로앱은 이런 호출에 제약이 많습니다.