[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference decwet::visual

Title:Microsoft Visual C++ bug reports and kits
Notice:Register in Topic 2. 5.Last for latest Kit
Moderator:DECWET::THOMASN
Created:Tue May 17 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:521
Total number of notes:2938

455.0. "MIDL problems with V4.2B on ALPHA machines" by DCEIDL::SHARRIS () Mon Feb 03 1997 13:25

We tried to upgrade Visual C++ from V4.0 to V4.2B on our ALPHA system
recently and ran into several problems with the MIDL compiler:

- The MIDL compiler refused to compile an IDL file that had worked with
  the version of MIDL that shipped with V4.0.  It gives the error:

midl  .\rb11.idl  -ID:\users\sharris\rb\bld\awnt -I\\dce_alias\rpcu\rb\..\sharris\rb\bld -I\\dce_alias\rpcu\rb\refnt  -c_ext -char ascii7 -ms_ext -rpcss -use_epv -out D:\users\sharris\rb\bld\awnt -no_default_epv -cstub rb11_cstub.c  -sstub rb11_sstub.c
Processing .\rb11.idl
Processing .\rbdef.idl
Processing d:\msdev\include\wtypes.idl
Processing \\dce_alias\rpcu\rb\refnt\rbdef.acf
Processing \\dce_alias\rpcu\rb\refnt\rb11.acf

MIDL error 0xc0000005: unexpected compiler problem. Try to find a work around.

  The error seemed to occur after client and server stubs were generated,
  but before the header file was generated.

  We did eventually discover a way to partially work around it, by
  compiling twice: the first time we get this error, but it generates a 
  client stub anyway.  Then we invoke the compilation again with "/client none"
  and in that case, it is able to generate the header file and the
  server stub.

- Unfortunately, the generated server stub seems to have some kind of problem
  in it because the compilation of the server stub gives these errors, 
  followed by link UNDEFINEDS:

	cl  -c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_ALPHA_=1 
         -D_WINNT -D_WIN32_WINNT=0x0400 -DWINVER=0x0400 -c -nologo  /GF -Z7 -Od 
         -D__DEBUG__ -D_DEBUG -ID:\users\sharris\rb\bld\awnt 
         -I\\dce_alias\rpcu\rb\..\sharris\rb\bld -I\\dce_alias\rpcu\rb\refnt
         -DWIN32 -D_WIN32 -D_MT -D_DLL -MD -DDECNET -Didl_char=char
         -D_MSDOC -DEP -D__STDC__ -Dmain="_cdecl main" /MDd -DWIN32 -D_WIN32
    /FoD:\users=sharris\rb\bld=awnt=rb11_sstub.obj .\rb11_sstub.c
rb11_sstub.c
.\rb11_sstub.c(181) : warning C4047: 'function' : 'unsigned char *' differs in levels of indirection from 'unsigned char ** '
.\rb11_sstub.c(181) : warning C4024: 'NdrSimpleTypeUnmarshall' : different types for formal and actual parameter 2
.\rb11_sstub.c(182) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(182) : warning C4024: 'NdrSimpleTypeUnmarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(183) : warning C4020: 'NdrSimpleTypeUnmarshall' : too many actual parameters
.\rb11_sstub.c(190) : warning C4013: 'FC_FIXED_REPEATUnmarshall' undefined; assuming extern returning int
.\rb11_sstub.c(222) : warning C4013: 'NdrSimpleTypeBufferSize' undefined; assuming extern returning int
.\rb11_sstub.c(240) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(240) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(338) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(338) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(447) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(447) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(556) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(556) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(639) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(639) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(694) : warning C4013: 'FC_BIND_PRIMITIVEUnmarshall' undefined; assuming extern returning int
.\rb11_sstub.c(742) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(742) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(746) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(746) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(845) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(845) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(932) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(932) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(1019) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(1019) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(1073) : warning C4047: 'function' : 'unsigned char *' differs in levels of indirection from 'unsigned char ** '
.\rb11_sstub.c(1073) : warning C4024: 'NdrSimpleTypeUnmarshall' : different types for formal and actual parameter 2
.\rb11_sstub.c(1074) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(1074) : warning C4024: 'NdrSimpleTypeUnmarshall' : different types for formal and actual parameter 3
.\rb11_sstub.c(1075) : warning C4020: 'NdrSimpleTypeUnmarshall' : too many actual parameters
.\rb11_sstub.c(1100) : warning C4047: 'function' : 'unsigned char ' differs in levels of indirection from 'const unsigned char *'
.\rb11_sstub.c(1100) : warning C4024: 'NdrSimpleTypeMarshall' : different types for formal and actual parameter 3
	if   not "" =="" copy .\rb_sstub.c \rb_sstub.c
	cl  -c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_ALPHA_=1 -D_WINNT -D_WIN32_WINNT=0x0400 -DWINVER=0x0400 -c -nologo  /GF -Z7 -Od -D__DEBUG__ -D_DEBUG -ID:\users\sharris\rb\bld\awnt -I\\dce_alias\rpcu\rb\..\sharris\rb\bld -I\\dce_alias\rpcu\rb\refn
rb_sstub.c
	cl /FeD:\users\sharris\rb\bld\awnt\rb_server.exe  D:\users\sharris\rb\bld\awnt\namdump.obj  D:\users\sharris\rb\bld\awnt\nametbl.obj  D:\users\sharris\rb\bld\awnt\rb_db.obj  D:\users\sharris\rb\bld\awnt\rb_mgr.obj  D:\users\sharris\rb\bld\awnt\rb_server.
rb11_sstub.obj : error LNK2001: unresolved external symbol FC_FIXED_REPEATUnmarshall
rb11_sstub.obj : error LNK2001: unresolved external symbol NdrSimpleTypeBufferSize
rb11_sstub.obj : error LNK2001: unresolved external symbol FC_BIND_PRIMITIVEUnmarshall
D:\users\sharris\rb\bld\awnt\rb_server.exe : fatal error LNK1120: 3 unresolved externals

I can make the IDL file and associated ACF files available if that would be
helpful.  Is this a known problem???????? 

Note: we did *not* have this error with V4.2 on INTEL machines.

I would like to reinstall V4.0 or V4.1 but am having trouble finding a kit.
The ftp site doesn't have anything earlier than V4.2, I can't connect to
node ouellette.zko.dec.com or c7nt5.  I did get V41.EXE from DECCXX but so
far it's refusing to self expand ("program too big to run").  Any pointers
you can give me would be helpful!!!!!

-Sue Harris/Resource Broker
T.RTitleUserPersonal
Name
DateLines
455.18153::tecotoo.mro.dec.com::mayerDanny MayerTue Feb 04 1997 06:145
	Be careful with the MIDL compiler.  I don't know if Microsoft fixed it,
  but when I was working with the first release, we found it made some counting
  errors when we embedded one structure into another.  This was 3 years ago.

		Danny
455.2DECWET::THOMASBug-for-bug compatible with IntelWed Feb 05 1997 13:474
    Sue has got this working under VC4.1. I will cross-post her note with
    some follow-up in VISUAL_FT so we can track this for 5.0.
    
    	Mike
455.3Fails on Intel tooDECWET::THOMASBug-for-bug compatible with IntelWed Feb 05 1997 15:4616
              <<< DECWET::DOCD$:[NOTES$LIBRARY]VISUAL_FT.NOTE;1 >>>
           -< Microsoft Visual C++ FIELD TEST bug reports and kits >-
================================================================================
Note 52.2                         MIDL problems                           2 of 2
DECWET::THOMAS "Bug-for-bug compatible with Intel"    9 lines   5-FEB-1997 15:43
                            -< Fails on Intel too >-
--------------------------------------------------------------------------------
    Upon further investigation, it seems that the Alpha version behaves the
    same as the Intel version :
    
    4.1 works (per Sue)
    4.2 Intel works (per Sue, Alpha behaviour is unknown)
    4.2b fails (per Sue)
    5.0 beta 2 fails (per me)
    
    So this is a Microsoft problem.
455.4any workaround strategies?DCEIDL::SHARRISThu Feb 27 1997 05:5715
    I did submit this as a problem to Microsoft.  According to their
    support people, it's also a problem in the version of MIDL that ships
    with V5.0 - and won't get fixed in that version either.  So we are
    forced to stay with very old versions of VC++ because we need an 
    older MIDL compiler.   (It would be nice if the download site for
    ALPHA versions still had the older version around!)
    
    Actually, we would like to try upgrading VC++ but keeping our older
    versions of MIDL around.  However, when we tried that, we found we also
    needed to copy wtypes.h from the VC++ V4.0 kit.  That seemed to work,
    but seemed very dangerous.  Might there be other header files the older
    MIDL would need?  Could the older wtypes.h cause problems with newer
    versions of VC++?   Any comments or discussion in this area?????
    Are we stuck with V4.0  VC++ for an even longer time?
                                                                               
455.5new tools but old headers?DECWET::PETERSONFri Mar 07 1997 13:289
    If you were able to build with just the old version of wtypes.h, then
    my feeling is that it should be safe. Nevertheless, I would be nervous
    about it.
    
    One possibility is to use the V5.0 tools (and the old midl), but keep
    the V4.x includes and libs around, and just use those in your project.
    (Although a new compiler with old header files might cause problems.)
    The V5.0 linker has a switch that allows you to specify library paths
    just as on Unix (and unlike the V4 linker).