digitalmars.D.bugs - [Issue 14309] New: The difference between Microsoft's GUID and
- via Digitalmars-d-bugs (37/37) Mar 19 2015 https://issues.dlang.org/show_bug.cgi?id=14309
https://issues.dlang.org/show_bug.cgi?id=14309 Issue ID: 14309 Summary: The difference between Microsoft's GUID and std.uuid.UUID Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: Phobos Assignee: nobody puremagic.com Reporter: zan77137 nifty.com In following code, I think it is hoped that `id` is the same as `IID_IClassFactory`, why does this happen? -------------- import std.stdio, core.sys.windows.com, std.uuid; pragma(lib, "uuid"); // for IID_IClassFactory void main() { // IID of IClassFactory // https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.iclassfactory.aspx immutable id = UUID("00000001-0000-0000-C000-000000000046"); static assert(UUID.sizeof == 16); static assert(IID_IClassFactory.sizeof == 16); // 01 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 46 writefln("IID_IClassFactory: %(%02X %)", *cast(ubyte[16]*)&IID_IClassFactory); // 00 00 00 01 00 00 00 00 C0 00 00 00 00 00 00 46 writefln("std.uuid.UUID: %(%02X %)", id.data); assert(id.data == *cast(ubyte[16]*)&IID_IClassFactory); // failure assert(UUID("01000000-0000-0000-C000-000000000046").data == *cast(ubyte[16]*)&IID_IClassFactory); // success } --
Mar 19 2015