Re: dll compatability table

new topic     » goto parent     » topic index » view thread      » older message » newer message
andi49 said...
ChrisB said...

Hi

I've just come across another frustrating dll incompatability issue

iup requires eu4.10, while sdl and sqlite require eu4.05

running on win8.1 64 bit, with 32 bit dlls and 32 bit euphorias

I suspect these aren't the only issues out there.

One fix around this is to name the eui.exe with the version number, ie eui405.exe and eui411.exe, and run from a batch file.

But there has to be a better solution. There is some incompatability between these dlls nd the versions of euphoria. What changed between these two releases? Unfortunately, this is where my usefulness stops.

However, something useful might be to gather the incompatabilities together, soto this end I have started a table of dll compatabilities - if anyone has any others, please add them

http://openeuphoria.org/wiki/view/Compatability%20issues.wc#category_Compatability%20issues

Cheers

Chris

Hallo

I had a look at sqlite (from the Rapideuphoria archive)
The problem seems to be a cdecl/stdcall issue.
For whatever reason Eu4.0.x can handle this, but Eu4.1 seems to be more rigid.
(tested with sqlite 3.9.2, i also changed the includes to the new Eu4 includes.)

-- in wrapper.e 
-- in 
global function link_func(atom dll, sequence name, sequence args, atom result) 
-- change  
handle = define_c_func(dll,name, args, result) 
-- to  
handle = define_c_func(dll, '+'&name, args, result) 
 
-- in 
global function link_proc(atom dll, sequence name, sequence args) 
-- change  
handle = define_c_proc(dll,name, args) 
-- to  
handle = define_c_proc(dll, '+'&name, args) 

Andreas

btw: same for sdl

Hi

On Linux to get the euiup wrapper working, I had to remove the '+' from each of the names. So I tried a quick experiment with sqlite (added '+'& as described above, and sure enough the c functions and procedures couldn't be linked. (eu4.05)

Looks like the wrapper has to be sorted to allow for PLATFORM, but IMHO this should be handled by the interpreter - is there should be no requirement for th'+' no matter what the calling convention - the interpreter / binder should handle it. This would remove a layer of complexity from the eu programmer. Is there away for the interpreter to tell programmatically what the calling convention is?

Cheers

Chris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu