Tristano wrote:1) IUP VERSION: In the FBWiki it mentions that the Header version is 3.13. Does this mean that I should download exactly that version of IUP (and not, lets say, a higher one)?
New library versions are compatible as long as the API of existing functions does not change. Typically that does happen very seldom, so the current version will probably work. Added API functions (if any) will not be available of course as you are still using the old headers.
btw I wouldn't rely on the documentation in such things that change constantly. I'd rather suggest to take a look into the headers itself (e.g. "iup.bi"). The latest headers (development version; not yet officially released) support version 3.15:
https://github.com/freebasic/fbc/tree/master/inc/IUP
You can download the current headers e.g. from:
http://users.freebasic-portal.de/stw/bu ... eaders.zip
Tristano wrote:2) IUP 32 or 64bit: Both FreeBASIC and IUP are available for 32 or 64bits. Does IUP work only with 32bit FreeBASIC, or I can use 64bits? FBWiki mentions "Platforms supported: Win32, Linux". My aim though is to compile to both Windows and Linux, so I'd rather stick to 32 bit if using 64bits would exclude any of the two.
When a header is 64-bit ready it typically supports both Windows and Linux, or in other words: when it is not 64-bit ready is doesn't work on Windows as well as Linux. The headers currently supported in the 64-bit versions are included in the 64-bit FreeBasic package.
The latest headers (see link above) seem to support 64-bit (at least they are not excluded from the 64-bit package as far as I can see). [fyi: I'm referring to this:
https://github.com/freebasic/fbc/blob/m ... efile#L881 ]
Tristano wrote:3) IUP DOWNLOAD: When I go to the Sourceforge download page for IUP, for each release version of IUP I get a number of choices:
Windows Libraries: "Static / Dynamic". Which ones should I be going for?
Both Static and Dynamic Win Libraries come in a number of different formats, each with a different suffix to the file name:
[...]
Again, which ones am I looking for?
First the difference static / dynamic:
Static libraries are linked into the exe, that means you don't require additional external libraries at runtime. During compilation you pass the ".a" (or sometimes especially on Windows ".lib") file to the linker (I think the headers do that automatically via #inclib, if you #include them).
Dynamic libraries are not fully linked into the exe, only a small interface. So at runtime you need the external library, which is a ".dll" file on Windows and a ".so" file on linux. During compilation you may have a ".dll.a" file, which is the interface linked into the exe - this is not needed in many cases however, as it can be automatically generated typically (from the dll).
One hint about naming: a library "my" is named (on windows) "my.dll" ( + "my.dll.a" maybe) if it's dynamic, "libmy.a" if it's static. On the command line or for #inclib you just specify the library name "my" ! (not "libmy" or "libmy.a" !)
Regarding the different files (suffixes): As D.J.Peters said they specify the compiler version used to build them. For FreeBasic you can use any of them, not just the MinGW ones! (as the C ABI is well defined). However, the libraries are different in regard of their dependencies. The libraries compiled with Microsoft's MSVC typically depend on the "Microsoft Visual C++ xyz Runtime" (insert the version for "xyz"). So that needs to be installed if you decide to use them. The MinGW library usually does not depend on anything, which is not included with the operating system, so it's probably still a good decision to use it also on Windows.
Tristano wrote:4) IUP INSTALL: Once I've downloaded the right files, what should I do with them? I did fetch most of the available downloads, and looked inside the archives, read the README files, ecc., but I didn't quite work out what I should make available to FB compiler, and where (something that I have to put in FreeBASIC folders, or in Windows system folders?).
Put the ".a" files into the "lib\<platform>" subfolder of your freebasic install dir (replace "<platform>" with the according platform name, e.g. "win32") OR into your source code folder. Put ".dll"/".so" files into the source code (application) folder.
If there are ".lib" files instead of ".a" you can typically just rename "xyz.lib" to "libxyz.a". You don't need any other files for compilation. ".def" files can be used for creating ".dll.a" interface library files for dynamic linking, ".h" files are C headers (you are using the tranlated ones for FreeBasic, ".bi" in inc\iup).
Tristano wrote:As for wx.c, after experimenting a bit, and reading on forums, I've got the impression that wx.NET v0.9.2 is not compatible with Win7 64 bits. I couldn't even run the demo files, while with version 0.7.2 I can run them ok (both downloaded from Sourceforge). On wx.NET website documentation there is mention of a v0.9.3 release, but there is no download for it ...
I can not recommend to use wx-c in its current state as it is a bit buggy and unmaintained. The last 0.9.2 release is already quite old and based on the old wxWidgets 2.x.
Tristano wrote:It seems the Win64 version of FB is not compatible with IUP headers.
The latest headers should be compatible (see link in the first answer). Do replace at least IUP and win headers in "/inc" (or /include) subfolder of your FB installation. Probably it's best to replace just the whole inc folder.
Tristano wrote:I placed all the .a files in FB "\lib\win32" subfolder.
For 64-bit you need to put the 64-bit library into the \lib\win64 subfolder accordingly.
Tristano wrote:As for the .h files, are they of any need to FreeBASIC, or I can just keep ignoring them?
These are C header files. In FreeBasic only FB header files (.bi) are supported (currently). The FB headers are included in the FB package/installer. Thus the C headers are of no use for FB and not needed.