I try what invitation is good for you 2009/6/2 Viktor Szakáts <[email protected]>
> I don't have huge recruiting experiences, so cannot tell, but maybe > someone in our crew (Mindaugas :) could find it interesting in the > future and even find time for it. > > Of course everyone is welcome and you can try getting ppl interested, > I seem to recall there is some infrastructure for that on sf.net even. > > Brgds, > Viktor > > On Tue, Jun 2, 2009 at 9:26 PM, Massimo Belgrano <[email protected]> > wrote: > > How recruit c developer for the best xbase compiler? > > what about add an invitation on harbour website? > > something like (and sorry for my bad english) > > "A global tool with people around all word , know as the best xbase > compiler > > search c developer (and why not english documenter) for a special mission > > made a batter product starting from the best product" > > i can post an official messages (from one guru Przemek, Viktor , Pritpal > ) > > also in other website > > > > 2009/6/2 Szakáts Viktor <[email protected]> > >> > >> Hi Przemek, > >> > >> Thanks for these ideas, exactly what I wanted to know. > >> > >> For me it's too complicated to convert to actual code > >> (plus I'm not using .dlls), but I hope someone can implement > >> it in a future Harbour version. > >> > >> Brgds, > >> Viktor > >> > >> On 2009.06.02., at 17:30, Przemyslaw Czerpak wrote: > >> > >>> On Tue, 02 Jun 2009, Szak�ts Viktor wrote: > >>> > >>> Hi, > >>> > >>>> We still have some non-portable code to support DLL calls on Windows. > >>>> The problem with this is that it only works on x86 Windows systems > >>>> (this means it isn't available on WinCE, x64 and IA64) and the > >>>> implementation > >>>> uses inline ASM to solve the problem. > >>>> Is it possible to replace DynaCall() function with a portable, > >>>> pure C solution? > >>> > >>> AFAIK no but it can be hacked to use pure C code for chosen platforms > >>> if you know well used ABI (calling convention). > >>> F.e. for x64 1-st 10 parameters are passed in registers without > touching > >>> stack (AFAIR RAX, RCX, R1, R2, ..., R8). These are 64bit registers so > >>> they can be used to hold most of data types without any casting or > >>> dividing > >>> (except long double and some structures). It means that it should be > >>> enough > >>> to introduce pseudo function with 10 parameters and cast real function > >>> to this one before calling, f.e. sth like: > >>> > >>> typedef LONGLONG ( CALLBACK * _DLL_FUNC_ ) > >>> ( LONGLONG p1, LONGLONG p2, LONGLONG p3, LONGLONG p4, LONGLONG > p5, > >>> LONGLONG p6, LONGLONG p7, LONGLONG p8, LONGLONG p9, LONGLONG > p10 > >>> ); > >>> > >>> LONGLONG p[ 10 ], llresult; > >>> _DLL_FUNC_ lpFunc; > >>> > >>> /* initalize params casting them to LONGLONG: */ > >>> p[ 0 ] = ( LONGLONG ) ...; > >>> p[ 1 ] = ( LONGLONG ) ...; > >>> ... > >>> > >>> /* initialie function address: */ > >>> lpFunc = ( _DLL_FUNC_ ) GetProcAddress; > >>> > >>> /* call function */ > >>> llresult = (lpFunc)( p[ 0 ], p[ 1 ], p[ 2 ], p[ 3 ], p[ 4 ], > >>> p[ 5 ], p[ 6 ], p[ 7 ], p[ 8 ], p[ 9 ] ); > >>> > >>> I cannot test it but it should work though it's possible that some > >>> types are not returned in RAX and in such case we will have to > introduce > >>> second version of such function declared with different return type. > >>> Similar hacks can be introduced also for other calling conventions > >>> but some of them force strict number of parameters so the caller > >>> has to use casting to 10 different functions depending on number of > >>> passed parameters and some parameters like 64bit integers or double > >>> values should be divided into two ones if parameter holder is not large > >>> enough f.e. on 32 bit systems. Some types may also need special > handling > >>> for returned values and repeated function declaration. > >>> AFAIR maximum number of DLL function parameters on x...@32 is 16. > >>> We have two calling conventions C and STD and 3 methods of returning > >>> parameters: LONGLONG, double, float. So finally we will need 16 * 2 * 3 > >>> pseudo functions which will be used in pure C code with strict number > >>> of normalized parameters. > >>> Someone who use windows, knows assembler and calling convention used > >>> in this OS should be able to create such code and test it. Current ASM > >>> code can be used as source for parameters conversion and types of > >>> functions. > >>> Sorry but due to limited access to this system I cannot make it myself. > >>> It's possible that such code written for x...@32 will also work with > >>> wi...@arm without any modifications or with some small ones in > parameter > >>> encoding or additional exceptions for returned values. > >>> > >>> best regards, > >>> Przemek > >>> _______________________________________________ > >>> Harbour mailing list > >>> [email protected] > >>> http://lists.harbour-project.org/mailman/listinfo/harbour > >> > >> _______________________________________________ > >> Harbour mailing list > >> [email protected] > >> http://lists.harbour-project.org/mailman/listinfo/harbour > > > > > > > > -- > > Massimo Belgrano > > > > > > > > _______________________________________________ > > Harbour mailing list > > [email protected] > > http://lists.harbour-project.org/mailman/listinfo/harbour > > > > > _______________________________________________ > Harbour mailing list > [email protected] > http://lists.harbour-project.org/mailman/listinfo/harbour > -- Massimo Belgrano
_______________________________________________ Harbour mailing list [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
