On 2017/1/26 19:00, Petri Hodju wrote:
> Hi!
> I ran to the same problem earlier and I posted patches here on the
> list on 2nd December 2016 for this problem.
> In short, the CompPtr has specialized constructors that can't access
> the protected members as they are not working on class level. The fix
> was trivial, changing the direct member variable access to use the
> already available accessor methods.
> Other problem I encountered was a missing BitmapBrushProperties1 in
> the d2d1_1helper1.h, for which I also posted a patch.
> With these patches I'm able to build the Qt-5.8.0 just fine : )
> Have I not followed some step of providing patches as these have not > been commented at all so far... ? I am afraid [1] isn't the correct way to fix it. As for consistency, the correct solution is adding a `friend` declaration, as what Microsoft people did.

Patch attached, please test.

[1] https://sourceforge.net/p/mingw-w64/mailman/message/35527066/

--
Best regards,
LH_Mouse





From 2ab50e9a9b1d3a8d8c6e33d1e2e9077a872166a8 Mon Sep 17 00:00:00 2001
From: LH_Mouse <[email protected]>
Date: Thu, 26 Jan 2017 19:28:51 +0800
Subject: [PATCH] mingw-w64-headers/include/wrl/client.h: Fix error: 'ptr_' is
 protected within this context.

---
 mingw-w64-headers/include/wrl/client.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mingw-w64-headers/include/wrl/client.h b/mingw-w64-headers/include/wrl/client.h
index 83b4cb3..448c7a2 100644
--- a/mingw-w64-headers/include/wrl/client.h
+++ b/mingw-w64-headers/include/wrl/client.h
@@ -252,6 +252,7 @@ namespace Microsoft {
             */
         protected:
             InterfaceType *ptr_;
+            template<class U> friend class ComPtr;

             void InternalAddRef() const throw() {
                 if(ptr_)
--
2.10.2


From 2ab50e9a9b1d3a8d8c6e33d1e2e9077a872166a8 Mon Sep 17 00:00:00 2001
From: LH_Mouse <[email protected]>
Date: Thu, 26 Jan 2017 19:28:51 +0800
Subject: [PATCH] mingw-w64-headers/include/wrl/client.h: Fix error: 'ptr_' is
 protected within this context.

---
 mingw-w64-headers/include/wrl/client.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mingw-w64-headers/include/wrl/client.h 
b/mingw-w64-headers/include/wrl/client.h
index 83b4cb3..448c7a2 100644
--- a/mingw-w64-headers/include/wrl/client.h
+++ b/mingw-w64-headers/include/wrl/client.h
@@ -252,6 +252,7 @@ namespace Microsoft {
             */
         protected:
             InterfaceType *ptr_;
+            template<class U> friend class ComPtr;
 
             void InternalAddRef() const throw() {
                 if(ptr_)
-- 
2.10.2

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to