Title: | Microsoft Visual C++ bug reports and kits |
Notice: | Register in Topic 2. 5.Last for latest Kit |
Moderator: | DECWET::THOMAS N |
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 |
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.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
455.1 | 8153::tecotoo.mro.dec.com::mayer | Danny Mayer | Tue Feb 04 1997 06:14 | 5 | |
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.2 | DECWET::THOMAS | Bug-for-bug compatible with Intel | Wed Feb 05 1997 13:47 | 4 | |
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.3 | Fails on Intel too | DECWET::THOMAS | Bug-for-bug compatible with Intel | Wed Feb 05 1997 15:46 | 16 |
<<< 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.4 | any workaround strategies? | DCEIDL::SHARRIS | Thu Feb 27 1997 05:57 | 15 | |
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.5 | new tools but old headers? | DECWET::PETERSON | Fri Mar 07 1997 13:28 | 9 | |
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). |