[1/4] programs/oleview: Fix compilation with PSDK.

Dmitry Timoshkov dmitry at baikal.ru
Tue Oct 27 05:52:01 CDT 2015


Francois Gouget <fgouget at free.fr> wrote:

> > > > That this is needed to compile with the PSDK but not with Wine probably 
> > > > indicates a bug in the Wine headers. What was the compilation error?
> > > 
> > > ..\include\wine/debug.h(334) : error C2039: 'brecVal' : is not a member of 'tagVARIANT'
> 
> I found the problem. In debug.h we have V_UNION(v,brecVal).pvRecord and 
> V_UNION(v,brecVal).pRecInfo. This does not work if tagVARIANT is using 
> nameless unions such as with the Visual C++ compiler.
> 
> The reason it works in Wine is that __STDC__ is always defined so that 
> Wine code never uses nameless unions for tagVARIANT. So I'm sending a 
> fix for that (adding V_RECORD() and V_RECORDINFO()).
> 
> 
> With that fix, are the following defines still needed? If yes, what is 
> the compiler command line and error?
> 
> > --- a/dlls/oleaut32/tests/typelib.c
> > +++ b/dlls/oleaut32/tests/typelib.c
> > @@ -19,6 +19,9 @@
> >   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
> >   */
> >
> > +#define NONAMELESSSTRUCT
> > +#define NONAMELESSUNION

I haven't seen your patch yet, but after adding V_RECORD() and V_RECORDINFO()
from PSDK to Wine's include/oleauto.h the error while compiling oleview has gone,
and the above defines in the dlls/oleaut32/tests/typelib.c are no longer needed.

Thanks!

-- 
Dmitry.



More information about the wine-devel mailing list