Windows Universal/Store apps support

Paulo Pinto via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 29 05:22:53 PDT 2015


On Friday, 29 May 2015 at 10:01:53 UTC, Rikki Cattermole wrote:
> On 29/05/2015 9:55 p.m., Paulo Pinto wrote:
>> On Friday, 29 May 2015 at 07:41:14 UTC, Rikki Cattermole wrote:
>>> On 29/05/2015 7:03 p.m., Paulo Pinto wrote:
>>>> On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole 
>>>> wrote:
>>>>> On 29/05/2015 3:57 a.m., Olivier Prince wrote:
>>>>>> I searched the forum to find if there is some support for 
>>>>>> new Windows
>>>>>> development technologies and I didn't find anything 
>>>>>> related (except
>>>>>> some
>>>>>> rants about WinRT 3 years ago).
>>>>>>
>>>>>> - Is there any support in D or phobos for developping this 
>>>>>> kind of
>>>>>> applications?
>>>>>
>>>>> No.
>>>>>
>>>>>> - Does D support ARM as Windows target?
>>>>>
>>>>> Yes/No. ldc/gdc guys probably are a good place to start.
>>>>>
>>>>>> - Are there any plans to support the specific libraries in 
>>>>>> this
>>>>>> respect
>>>>>> (something like C++/CX extensions or COM metadata files)?
>>>>>
>>>>> What exactly do you need?
>>>>
>>>> WinRT is an evolution of COM with a .NET feel to the API.
>>>>
>>>> Basically it is COM where objects also need to implement a 
>>>> new
>>>> interface, IInspectable, and .NET metadata stored in .winmd 
>>>> files is
>>>> used instead of COM type libraries.
>>>>
>>>> In a way WinRT is the return of Ext-VOS, the original idea 
>>>> behind .NET.
>>>> Most likely caused by the Longhorn failure to write 
>>>> everything in .NET,
>>>> as most new Windows APIs have been introduced as COM 
>>>> components since
>>>> Vista.
>>>>
>>>> So any language targeting WinRT, or Universal Apps as they 
>>>> are now
>>>> known, needs to to support COM alongside the required 
>>>> interfaces for
>>>> interoperability between languages and be able to 
>>>> consume/produce .NET
>>>> metadata files.
>>>>
>>>> --
>>>> Paulo
>>>
>>> D already supports COM.
>>> For .winmd, you should be good to go for -m32mscoff and -m64! 
>>> Just add
>>> LFLAGS="/winmd"
>>>
>>> Although this really really needs to be tested.
>>
>> As far as I am aware D supports old style COM, not COM with 
>> WinRT
>> improvements.
>>
>> I don't get your hint with LFLAGS.
>
> https://msdn.microsoft.com/en-us/library/jj157268.aspx
> So unless this isn't doing what I think it is doing, then yes 
> it is relevant.
> No guarantees about what it requires for input info regarding 
> e.g. symbols however.
>
>> Are you aware what are .NET metadata files?
>
> I can't say anything about that. Again try the flag. If it 
> doesn't do what I'm expecting it does, no harm. It's just a 
> feature that definitely isn't implemented or supported by the 
> toolchain.
>
> Of course, just because it generates the file, doesn't mean 
> that there will be anything of use within it.

The compiler provides the required information in C++/CX mode.

When using pure C++ with the Windows Runtime C++ Template Library 
instead[0], it requires an idl file to be given to the MIDL 
compiler, that is then fed to the linker, like old style COM type 
libraries.

[0] - 
https://msdn.microsoft.com/en-us/library/windows/apps/hh438466.aspx

[1] - 
https://msdn.microsoft.com/en-us/library/windows/apps/hh973463.aspx






More information about the Digitalmars-d-learn mailing list