Hello William On 22 Oct 97 at 18:59, you wrote: > Ooops, one more thing.. > > root[0] Simple s; > > (crash!!!) > > I hope someone has more fun with this than I have. :) > William Deninger > Sorry I was ENABLE to reproduce your problem. NO crash !!! I took your Simple.h and Simple.cxx and made Simple.DLL. I edited (customized) and applied test/Makefile for that but instead of Event.cxx, Event.h the Simple's ones were used. The Linkdef.h was like this Linkdef.h ==================== #ifdef __CINT__ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class Simple; #endif ==================== and Makefile itself follows (see below). Then I got: =========== Creating Simple Dictionary and Simnple.DLL : D:\Users\brun\root\test>nmake -f makefile.simple Microsoft (R) Program Maintenance Utility Version 1.61.6038 Copyright (C) Microsoft Corp 1988-1996. All rights reserved. cl -DWIN32 -D_WIN32 -D_MT -D_DLL /Zd /O2 /G5 /MD -D_WINDOWS -I\users\ro ot\ms/include -c Simple.cxx Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 10.20.6166 for 80x86 Copyright (C) Microsoft Corp 1984-1996. All rights reserved. Simple.cxx "Generating dictionary ..." Note: operator new() masked c Note: operator delete() masked c cl -DWIN32 -D_WIN32 -D_MT -D_DLL /Zd /O2 /G5 /MD -D_WINDOWS -I\users\ro ot\ms/include -c SimpleCint.cxx Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 10.20.6166 for 80x86 Copyright (C) Microsoft Corp 1984-1996. All rights reserved. SimpleCint.cxx BINDEXPLIB Simple Simple.obj SimpleCint.obj > Simple.def lib /nologo /MACHINE:IX86 Simple.obj SimpleCint.obj /def:Simple.def /out :Simple.lib Creating library Simple.lib and object Simple.exp link /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO -align:0x1 000 -entry:_DllMainCRTStartup@12 -dll Simple.obj SimpleCint.obj Simple.exp \user s\root\ms/lib/*.lib msvcrt.lib oldnames.lib kernel32.lib advapi32.lib user32.li b gdi32.lib comdlg32.lib winspool.lib MSVCIRT.LIB /out:Simple.dll "SIMPLE.dll done" =========== Then I launched ROOT session: I:\Users\brun\root\test>root the current keyboard layout is 866 ******************************************* * * * W E L C O M E to R O O T * * * * Version 1.03/03 10 September 1997 * * Development version * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* CINT/ROOT C/C++ Interpreter version 5.13.24, Aug 24 1997 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] gSystem.Load("Simple.DLL") (int)0 root [1] Simple s; root [2] .q I:\Users\brun\root\test>dir test.txt Volume in drive I is 8Gb Volume Serial Number is E4B0-CA2D Directory of I:\Users\brun\root\test 23.10.97 09:54 8 test.txt 1 File(s) 8 bytes 5'483'872'256 bytes free I:\Users\brun\root\test>type test.txt 3.1415 ========================================================= The ONLY difference my compiler is MSVC v.4.2 and MS did something with very stream classes. I'd like to pay your attention that that Simple.DLL as well as ROOT's DLL wre linked against of MSVCIRT.LIB. This library does contain the implementations of the "stream" classes. I wonder your problem here ? # ================================== Begin Of Makefile ========================== ObjSuf = obj SrcSuf = cxx ExeSuf = .exe DllSuf = dll OutPutOpt = /out: # Win32 system with Microsoft Visual C/C++ !include <win32.mak> CC = $(cc) CXX = $(cc) CXXFLAGS = $(cvarsdll) /Zd /O2 /G5 /MD -D_WINDOWS -I$(ROOTSYS)/include LD = $(link) LDFLAGS = $(conlflags) SOFLAGS = $(dlllflags) ROOTLIBS = $(ROOTSYS)/lib/*.lib LIBS = $(ROOTLIBS) $(guilibsdll) MSVCIRT.LIB LIBSALL = $(ROOTLIBS) SIMPLELIB = Simple.lib #------------------------------------------------------------------------------ SIMPLEO = Simple.$(ObjSuf) SimpleCint.$(ObjSuf) # SIMPLEO = Simple.$(ObjSuf) SIMPLES = Simple.$(SrcSuf) SimpleCint.$(SrcSuf) SIMPLESO = libSimple.$(DllSuf) OBJS = $(SIMPLEO) PROGRAMS = $(SIMPLE) DLLS = $(SIMPLESO) all: $(DLLS) $(PROGRAMS) $(SIMPLESO): $(SIMPLEO) BINDEXPLIB Simple $(SIMPLEO) > Simple.def lib /nologo /MACHINE:IX86 $(SIMPLEO) /def:Simple.def $(OutPutOpt)$(SIMPLELIB) $(LD) $(SOFLAGS) $(SIMPLEO) Simple.exp $(LIBS) $(OutPutOpt)Simple.dll @echo "SIMPLE.dll done" clean: @del /q $(OBJS) SimpleCint.$(SrcSuf) SimpleCint.h ### SimpleCint.$(SrcSuf): Simple.h LinkDef.h @echo "Generating dictionary ..." @rootcint -f SimpleCint.$(SrcSuf) -c Simple.h LinkDef.h .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) -c $< # ================================== End Of Makefile ========================== Dr. Valeri Faine (Valery Fine) ------------ ------------- Phone: +41 22 767 4921 CERN FAX : +41 22 767 7155 CH-1211 Geneva, 23 mailto:fine@mail.cern.ch Switzerland http://nicewww.cern.ch/~fine
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:21 MET