Hi,

Mico is not compiling correctly under Visual C++ v8. In particular when executing idl.exe 
a dialog box appears stating, "Can not find MSVCR80.dll".
I just installed the VS Express from the link below, also Platform SDK , added the correct paths to INCLUDE and LIB.

I compiled successfully this package of MICO:
http://www.mico.org/~msorin/mico-cl8-15.05.06.zip

IDL does not crash, the manifests are added correctly ...
I have absolutely no problem ...


I have read a previous mico-devel post discussing this problem: 
http://www.mail-archive.com/[email protected]/msg00136.html

I have made the following change to the idl makefile:

idl.exe: main.obj $(DLL_OBJS)
        $(LINK) $(LINKFLAGS) main.obj  $(DLL_OBJS) \
                /subsystem:console  $(LIBS) ole32.lib \
                /out:idl.exe \
                /MANIFEST /MANIFESTFILE:"idl.exe.intermediate.manifest"   <--- 
Added

        mt.exe /outputresource:"idl.exe;1" /manifest idl.exe.intermediate.manifest 
 <--- Added

idl$(VERSION).dll: $(DLL_OBJS) idl$(VERSION).def
        $(LINK) $(LINKDLLFLAGS) $(DLL_OBJS) ole32.lib $(LIBS) \
                /out:idl$(VERSION).dll \
                /def:idl$(VERSION).def \
                /MANIFEST /MANIFESTFILE:"idl$(VERSION).dll.intermediate.manifest"  
 <--- Added

        mt.exe /outputresource:"idl$(VERSION).dll;2" /manifest 
idl$(VERSION).dll.intermediate.manifest   <--- Added

Those options marked as "Added" are not needed ... The manifests are added with the command mt called with special params ...
        $(MT) -manifest idl.exe.manifest -outputresource:idl.exe;#1
$(MT) -manifest idl$(VERSION).dll.manifest -outputresource:idl$(VERSION).dll;#1

Just to make sure the order is correct, I have changed the idl/makefile.win32 a little. Please find it attached. Just replace your existing one.


and now when executing idl.exe I get a dialog box that states, "idl.exe has 
encountered a problem and needs to close."
I don't know if it will help, but the 'Error signature' states:

AppName: idl.exe    AppVer: 0.0.0.0   ModName: msvcr80.dll
ModVer: 8.0.50727.42      Offset: 00008890
I think I know why you get this error. You are using the wrong msvcr80.dll. Just make a search after this dll. You will find a lot of them .. one for each processor and for each build type (32 or 64 b).


Please execute from Platform SDK the "SetEnv.Cmd" from the window where you executed vsvars32.bat of VSTUDIO.
Or better, just add in the above batch file something like this:

call "<path>\Microsoft Platform SDK\SetEnv.Cmd /XP32"
or .. see the other params.
Note: the default target is DEBUG.

Note: we haven't tested yet MICO compiled native on 64b.




Can you help? If you do not have Visual C++ v8 you can get a free version at 
http://msdn.microsoft.com/vstudio/express/visualc/download/

Thank you so much,
Brian Heilig



--
Regards,

Sorin Mustaca
Website: http://www.mustaca.de
Blog:http://www.mustaca.de/blog

#
# MICO --- a CORBA 2.0 implementation
# Copyright (C) 1997 Kay Roemer & Arno Puder
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Send comments and/or bug reports to:
#                [EMAIL PROTECTED]
#
RELATIVE = ..

!include ..\MakeVars.win32

CXXFLAGS = $(CXXFLAGS)

CXXFLAGS = $(CXXFLAGS) /I. /I..\include /I..\include\windows
LIBS = ../win32-bin/lib/mico$(VERSION).lib

SRCS = params.cc codegen-c++-common.cc codegen-idl.cc codegen-c++-skel.cc \
       codegen.cc parsenode.cc codegen-c++-stub.cc const.cc \
       parser.cc codegen-c++-util.cc codegen-c++-impl.cc db.cc \
       prepro.cc codegen-c++.cc dep.cc error.cc scanner.cc \
       codegen-midl.cc idlparser.cc yacc.cc ir-copy.cc keymap.cc \
       codegen-wsdl.cc

!ifdef USE_CCM
SRCS = $(SRCS) ccm-transform.cc
LIBS = $(LIBS) ..\win32-bin\lib\ir$(VERSION).lib
!endif

!ifdef VC8
IDLEXE_VC8_FLAGS = /manifest /manifestfile:idl.exe.manifest
IDLDLL_VC8_FLAGS = /manifest /manifestfile:idl($VERSION).dll.manifest
!else
IDLEXE_VC8_FLAGS = 
IDLDLL_VC8_FLAGS =
!endif  


all:  lib prg

DLL_SRCS = $(SRCS)
DLL_OBJS = $(DLL_SRCS:.cc=.obj)

lib: idl$(VERSION).dll


#need to install these in order to have idl for coss    
prg:  idl.exe copy
        
install: prg copy

copy:   
        $(COPY) idl$(VERSION).dll ..\win32-bin
        $(COPY) idl$(VERSION).lib ..\win32-bin\lib
        $(COPY) idl.exe ..\win32-bin

idl.exe: main.obj $(DLL_OBJS)
        $(LINK) $(LINKFLAGS) main.obj  $(DLL_OBJS) \
                /subsystem:console  $(LIBS) ole32.lib \
                /out:idl.exe 
#$(IDLEXE_VC8_FLAGS)
!ifdef VC8
        $(MT) -manifest idl.exe.manifest -outputresource:idl.exe;#1
!endif


idl$(VERSION).dll: $(DLL_OBJS) idl$(VERSION).def
        $(LINK) $(LINKDLLFLAGS)  $(DLL_OBJS) ole32.lib $(LIBS) \
                /out:idl$(VERSION).dll \
                /def:idl$(VERSION).def 
!ifdef VC8
        $(MT) -manifest idl$(VERSION).dll.manifest 
-outputresource:idl$(VERSION).dll;#1
!endif

#$(IDLDLL_VC8_FLAGS)

idl$(VERSION).def: $(DLL_OBJS)
        ..\win32-bin\gendef idl$(VERSION).def idl$(VERSION) $(DLL_OBJS)

clean:
        -$(DELETE)
_______________________________________________
Mico-devel mailing list
[email protected]
http://www.mico.org/mailman/listinfo/mico-devel

Reply via email to