2012-08-14 20 views
5

Có macro mới để xác định trong mã nếu ứng dụng đang chạy trên WinRT không? Khi tôi đang làm việc với LoadLibrary, sẽ rất tuyệt nếu có macro để thay thế tất cả các cuộc gọi đến LoadLibrary bằng một đến LoadPackagedLibrary ...Macro để nhận ra WinRT?

Tôi hiểu tài liệu chính xác như tôi có thể tải bất kỳ DLL nào (như miễn là nó nằm trong gói của tôi) qua LoadPackagedLibrary, phải không ?! (Và miễn là DLL đó không sử dụng các API được liệt kê đen ...)

+0

Bạn có nghĩa là giống như # nếu NETFX_CORE ? –

+0

Xin lỗi, tôi đoán đó là dành cho .NET. Có thể cho C++ bạn có thể sử dụng [WINAPI_FAMILY] (http://stackoverflow.com/questions/9509166/what-is-winapifamily-h) –

+0

Cũng như tôi hiện đang chỉ sử dụng các công cụ liên quan đến LoadLibrary từ . Vì vậy, thông qua '#if WINAPI_FAMILY WINAPI_FAMILY_APP' tôi có thể xác định có hay không tôi đang trên WinRT? – MFH

Trả lời

4

Gần đây tôi đã cập nhật để Visual Studio 2012, và nghĩ rằng tôi đã tìm thấy câu trả lời cho câu hỏi của tôi:

Bên trong Headers Microsoft Macro WINAPI_FAMILY_PARTITION được sử dụng để xác định "Cấp" của WinAPI. Hiện nay có WINAPI_PARTITION_DESKTOPWINAPI_PARTITION_APP, do đó tôi "đoán" rằng qua một macro này có thể phân biệt giữa Desktop và Metro ...

Hai macro dẫn đến một tập hợp các macro: #define WINAPI_FAMILY_APP WINAPI_PARTITION_APP#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP). Do đó, nếu WINAPI_FAMILY_APP được xác định ai có thể cho rằng đó là một ứng dụng Metro ...

0

Hãy thử __WRL_WINRT_STRICT__. Không hoàn toàn chắc chắn đó là một trong những quyền, nhưng nếu bạn đi tìm trong tập tin đó nó có thể sẽ có những gì bạn muốn.

Từ herehere.

1

Để thêm của bạn để trả lời, xin vui lòng xem bài viết này Dual-use Coding Techniques for Games

Trong phần giới thiệu

Apps bằng văn bản cho Windows Store sử dụng Windows Runtime (WinRT) và một tập hợp con giới hạn của các API Win32 nằm trong lõi API gia đình (được chỉ định bởi WINAPI_FAMILY được đặt thành WINAPI_PARTITION_APP). truyền thống Win32 ứng dụng máy tính để bàn có quyền truy cập vào một máy tính để bàn lớn API gia đình (thể hiện bằng WINAPI_FAMILY thiết lập để WINAPI_PARTITION_DESKTOP), nhưng điều này là tùy thuộc vào mức độ khác nhau hỗ trợ hệ điều hành cần thiết cho mỗi chức năng

Các vấn đề liên quan