![]() |
【转帖】net 2003 compile error with 1.10 exgsopenglvectorizedevice
.net 2003 compile error with 1.10 exgsopenglvectorizedevice.
.net 2003 compile error with 1.10 exgsopenglvectorizedevice.cpp in the exgsopenglvectorizeview::rasterimageproc function is the following line: odgiconveyorcontext* pctx = odgibasevectorizer::drawcontext(); which causes the following error: dd_nonlibs\examples\exrender\win\exgsopenglvectori zedevice.cpp(367) : error c2248: 'odgiconveyorcontext' : cannot access inaccessible class declared in class 'exgsopenglvectorizeview' \dd_nonlibs\include\gi\giconveyorgeometry.h(42) : see declaration of 'odgiconveyorcontext' dd_nonlibs\examples\exrender\win\exgsopenglvectori zedevice.h(42) : see declaration of 'exgsopenglvectorizeview' the fix is to use the scope operator. so, here抯 what the fixed line looks like: ::odgiconveyorcontext* pctx = odgibasevectorizer::drawcontext(); here抯 part of the c2248 error description: 揟his error can also be generated as a result of compiler conformance work that was done for visual studio .net 2003: private base classes now inaccessible. a class (a) that is a private base class to a type (b) should not be accessible to a type (c) that uses b as a base class.?br /> if you follow the inheritance tree, exgsopenglvectorizeview is derived from odgibasevectorizer, which is derived from 損rivate odgiconveyorcontext? thanks for posting this, i was having that compilation error in .net 2003 and still trying to get it fixed !! dawson hi all, to fix it use next line: odgiconveyorcontext* pctx = ::fff">odgibasevectorizer::drawcontext(); instead of: odgiconveyorcontext* pctx = odgibasevectorizer::drawcontext(); i just tried that fix. it results in the same error. odgiconveyorcontext is what needs to be scoped. use ::fff">odgiconveyorcontext* pctx = odgibasevectorizer::drawcontext(); instead of: odgiconveyorcontext* pctx = odgibasevectorizer::drawcontext(); here抯 the example from .net 2003抯 description of the c2248 error code. // c2248c.cpp // compile with: /ld struct a { }; struct b: private a { }; struct c: b { void f() { a *p1 = (a*) this; // c2248 ::a *p2 = (::a*) this; // ok } }; adding odgibasevectorizer as friend seems to alleviate this one: class odgiconveyorcontext { public: friend class odgibasevectorizer; virtual odgicontext& gicontext() const = 0; virtual odgisubentitytraits& subentitytraits() const = 0; virtual const odgisubentitytraitsdata& effectivetraits() const = 0; virtual const odgidrawabledesc* currentdrawabledesc() const = 0; virtual const odgidrawable* currentdrawable() const = 0; virtual const odgiviewport* giviewport() const = 0; virtual const odgsview* gsview() const = 0; }; |
所有的时间均为北京时间。 现在的时间是 02:39 AM. |