> > 1) One problem with this is that an .exp / .lib file will be generated > > for *every* Harbour executables created, at least with MSVC. This > > is because these two symbols will now be exported from all > > Harbour executables. [ I've been dealing with this issue in the last > > few months quite heavily. ] > > > > I don’t understand the problem here. Sorry, I just created a small exe, > just calling a messagebox() function within a dll and it do not created any > .exp nor .lib file. > > (MSVC 2008) > You should try to build a static .exe with same set of files.
> 2) It won't solve -gc3 compiled .prg code. These need some more > > functions to be exported. > > I’ve not tryed yet. What is the diff between .c pcode and real c code ? > > I can understand it could not work because of needed exported function but > in all case, if –gc3 can avoid working dll, I don’t see why those two > exported function could avoid the use of –gc3 if we don’t use any DLL ?? > You misunderstood me, I'm talking about -gc3 compiled .prgs placed *into* "pcode" .dlls. -gc3 generated .c code will call HVM functions directly, instead of the hb_vmExecute() HVM loop entry. Since this is a valid option for users, we should deal with it in some ways. > 3) I'd use some other name, like HB_EXPORTFORCED, because > > the meaning of 'p' is very ambiguous (it was "*p*code dynamic lib > > probably, but this isn't precise). > > OK, it was just a first try J > Smallest detail anyway :) > 4) It's still unclear what is the importance of maindllp.c, as it's not > > used anywhere inside Harbour. > > > > Maindllp.c must be compiled and linked to create the pcode dll. It is the > main startup for the dll and also contain some function allowing the code in > the dll to use the exe internal function vmExecute and symbol mapping. > Thanks. Now, this is a problem, because maindllp.c isn't distributed in any of our binary packages, and it wouldn't be a very good idea to distribute it as .c file anyway. Did you try creating a static .lib from it, and adding that lib when you create pcode .dll? If this works, this should be the way we should distribute it, and in this case, even hbmk could make use of it. [ IOW, we would probably need a maindllp lib in our binary distros, and this lib should be built by our make system. *If* it works this way. ] Brgds, Viktor
_______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour