1. EuFLW 3.3 Released!

Hello all,

I have updated my GLFW wrapper for GLFW 3.3.0, new features have been wrapped! Check it out at my github. https://github.com/gAndy50/EuGLFW3

new topic     » topic index » view message » categorize

2. Re: EuFLW 3.3 Released!

Icy_Viking said...

I have updated my GLFW wrapper for GLFW 3.3.0, new features have been wrapped! Check it out at my github. https://github.com/gAndy50/EuGLFW3

Is this supposed to work with Eu4.1? The *.exw files flash a window and exit, but I don't get an ex.err. What should I see when running those apps?

new topic     » goto parent     » topic index » view message » categorize

3. Re: EuFLW 3.3 Released!

euphoric said...
Icy_Viking said...

I have updated my GLFW wrapper for GLFW 3.3.0, new features have been wrapped! Check it out at my github. https://github.com/gAndy50/EuGLFW3

Is this supposed to work with Eu4.1? The *.exw files flash a window and exit, but I don't get an ex.err. What should I see when running those apps?

I wrote this under Euphoria 4.0.5, I don't know if it will work under Eu 4.1, I haven't tested it, the demo apps I wrote are running fine with 4.0.5. You should see a blank window that should stay open until you the user closes it.

new topic     » goto parent     » topic index » view message » categorize

4. Re: EuFLW 3.3 Released!

Icy_Viking said...

I wrote this under Euphoria 4.0.5, I don't know if it will work under Eu 4.1, I haven't tested it, the demo apps I wrote are running fine with 4.0.5. You should see a blank window that should stay open until you the user closes it.

Ah, OK. It's not working for 4.1 then. I'm not sure I could diagnose it, either.

new topic     » goto parent     » topic index » view message » categorize

5. Re: EuFLW 3.3 Released!

The problem, as is often the case, starts with the dll. As far as I can ascertain the version of glfw3.dll in your distro was created for Visual C++. I, and I guess many others, tend to use dlls created for MinGW. So, for me, the distro doesn't work for any version of Euphoria!

Unfortunately, there seems to be a problem with the labelling of the various dll versions in the GLFW "Download" zip! If you try that in the lib-mingw folder open_dll returns 0, but if you try the one in the lib-mingw-w64 folder then open_dll returns a suitable value! (For the record, the version of glfw3.dll in the "64-bit" folder is actually 32-bit.) As added "proof" of its 32-bit character, Euphoria 3.1.1 can open the dll equally well.

So, problem addressed, but sadly not solved! The EuFLW examples work using v4.0.5, but they both fail when I use the 32-bit version of v4.1.0.

I have designed a step-by-step diagnosis program, which simply simulates the examples, and have moved some "pausing" code a line at a time to test all current values. This program runs, with all pauses "off" in the v4.0.5 interpreter (and also in the 3.1.1 interpreter, for that matter!) When tested using the v4.1.0 interpreter, however, although open_dll, define_c_func and define_c_proc all deliver as expected, as soon as the program calls c_proc or c_func it fails without error, but with the "flash" of a window!

Do others have this same problem with other examples of dlls?

new topic     » goto parent     » topic index » view message » categorize

6. Re: EuFLW 3.3 Released!

dr_can said...

The problem, as is often the case, starts with the dll. As far as I can ascertain the version of glfw3.dll in your distro was created for Visual C++. I, and I guess many others, tend to use dlls created for MinGW. So, for me, the distro doesn't work for any version of Euphoria!

Unfortunately, there seems to be a problem with the labelling of the various dll versions in the GLFW "Download" zip! If you try that in the lib-mingw folder open_dll returns 0, but if you try the one in the lib-mingw-w64 folder then open_dll returns a suitable value! (For the record, the version of glfw3.dll in the "64-bit" folder is actually 32-bit.) As added "proof" of its 32-bit character, Euphoria 3.1.1 can open the dll equally well.

So, problem addressed, but sadly not solved! The EuFLW examples work using v4.0.5, but they both fail when I use the 32-bit version of v4.1.0.

I have designed a step-by-step diagnosis program, which simply simulates the examples, and have moved some "pausing" code a line at a time to test all current values. This program runs, with all pauses "off" in the v4.0.5 interpreter (and also in the 3.1.1 interpreter, for that matter!) When tested using the v4.1.0 interpreter, however, although open_dll, define_c_func and define_c_proc all deliver as expected, as soon as the program calls c_proc or c_func it fails without error, but with the "flash" of a window!

Do others have this same problem with other examples of dlls?

I was having problems using Eu 4.1.0 to create wrappers, so I have stuck with 4.0.5 for the time being. For most DLLs, I use the one built with visual studio. If the library I am wrapping is cross-platform, I will add code so that it can load .so (DLLs for Linux/GNU systems). Usually this just consist of a platform check and then adding in the .so file extension when reading/opening the DLL to read the functions from.

new topic     » goto parent     » topic index » view message » categorize

7. Re: EuFLW 3.3 Released!

I'm really curious why you guys are having problems because I had no problems running the two examples provided on Euphoria 4.1.0 64-bit on Windows 10.

This is the file I downloaded: https://github.com/glfw/glfw/releases/download/3.3/glfw-3.3.bin.WIN64.zip

I copied lib-mingw-w64\glfw3.dll to C:\Euphoria\bin, opened a Command Prompt to the directory with EuGLFW3 and ran eui GLFWWin.exw and the window popped right up!

When you're trying Eu 4.1, which build are you using? I'm on 6300:57179171dbed.

-Greg

new topic     » goto parent     » topic index » view message » categorize

8. Re: EuFLW 3.3 Released!

ghaberek said...

This is the file I downloaded: https://github.com/glfw/glfw/releases/download/3.3/glfw-3.3.bin.WIN64.zip

I copied lib-mingw-w64\glfw3.dll to C:\Euphoria\bin, opened a Command Prompt to the directory with EuGLFW3 and ran eui GLFWWin.exw and the window popped right up!

When you're trying Eu 4.1, which build are you using? I'm on 6300:57179171dbed.

I'm on that version of Eu, and I'm getting the "c_proc/c_func: bad routine number (-1)" at the moment.

The glfw3.dll is in the same directory as the GLFWWin.exw. I think mine is defaulting to the 32-bit Euphoria. Not sure how to run the 64-bit version with it, but I tried with the "Run with..." prompt in Windows and it gives the same "bad routine number" error.


Forked into: Installing 32-bit and 64-bit on the same system and running them conveniently

new topic     » goto parent     » topic index » view message » categorize

9. Re: EuFLW 3.3 Released!

euphoric said...
ghaberek said...

This is the file I downloaded: https://github.com/glfw/glfw/releases/download/3.3/glfw-3.3.bin.WIN64.zip

I copied lib-mingw-w64\glfw3.dll to C:\Euphoria\bin, opened a Command Prompt to the directory with EuGLFW3 and ran eui GLFWWin.exw and the window popped right up!

When you're trying Eu 4.1, which build are you using? I'm on 6300:57179171dbed.

I'm on that version of Eu, and I'm getting the "c_proc/c_func: bad routine number (-1)" at the moment.

The glfw3.dll is in the same directory as the GLFWWin.exw. I think mine is defaulting to the 32-bit Euphoria. Not sure how to run the 64-bit version with it, but I tried with the "Run with..." prompt in Windows and it gives the same "bad routine number" error.


Forked into: Installing 32-bit and 64-bit on the same system and running them conveniently

I was getting the bad routine error as the other poster said using 4.1.0. So I've stuck to using 4.0.5 for now. I also have this habit of using 32-bit DLLs for compatbility reasons. Though I should start using 64-bit DLLs, as there is less and less reasons to use 32-bit DLLs these days.

new topic     » goto parent     » topic index » view message » categorize

10. Re: EuFLW 3.3 Released!

Icy_Viking said...

I was getting the bad routine error as the other poster said using 4.1.0. So I've stuck to using 4.0.5 for now. I also have this habit of using 32-bit DLLs for compatbility reasons. Though I should start using 64-bit DLLs, as there is less and less reasons to use 32-bit DLLs these days.

Download Dependency Walker (both x86 and x64) and open the DLL to see if there are any missing libraries it's trying to load.

-Greg

new topic     » goto parent     » topic index » view message » categorize

11. Re: EuFLW 3.3 Released!

ghaberek said...

Download Dependency Walker (both x86 and x64) and open the DLL to see if there are any missing libraries it's trying to load.

I think there might be a problem.

https://imgur.com/rEBS3rm

new topic     » goto parent     » topic index » view message » categorize

12. Re: EuFLW 3.3 Released!

euphoric said...

I think there might be a problem.

https://imgur.com/rEBS3rm

Sorry, forgot to say: those EXT-MS-WIN libraries are not a problem (Dependency Walker is kinda dumb about those).

Collapse all of the libraries and make sure there aren't any other non-EXT-MS-WIN libraries missing.

-Greg

new topic     » goto parent     » topic index » view message » categorize

13. Re: EuFLW 3.3 Released!

OK, so there's a ton of the API-MS-WIN-... files, and EXT-MS-WIN... files, but the only one not in that class that shows up as "Error opening file" is IESHIMS.DLL.

Is that a good clue?!

I'm running the x64 version of depends.exe on the GLFW3.DLL file.

Added: Oops! Missed one, in-between... EMCLIENT.DLL

new topic     » goto parent     » topic index » view message » categorize

14. Re: EuFLW 3.3 Released!

euphoric said...
Icy_Viking said...

I have updated my GLFW wrapper for GLFW 3.3.0, new features have been wrapped! Check it out at my github. https://github.com/gAndy50/EuGLFW3

Is this supposed to work with Eu4.1?

I finally got around the messing with this more.

Wanted to update this thread and say it works fine when I run it with Euphoria 4.1 64-bit.

new topic     » goto parent     » topic index » view message » categorize

15. Re: EuFLW 3.3 Released!

I forgot to reply to this thread. I updated to Euphoria 4.1.0 Beta 2 and fixed the EuGLFW 3.3. It should work now. It works under my machine. I believe I also added the updated files to my github. I'm using the 32-bit version of Euphoria along with the 32-bit DLLs. So if you're using the 64-bit version of Euphoria, you'll need to use the 64-bit DLLs. I also had to add the "+" in front of the function inside the quotes of the name of the function, so it would work, since the DLLs are using the CDECL format.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu