Help - Search - Members - Calendar
Full Version: Developing without Visual Studio - perhaps GCC instead?
Hydrogenaudio Forums > Hosted Forums > foobar2000 > Development - (fb2k)
robby says
Has anybody tried writing a foobar2000 0.9 plugin using GCC, or does anybody have experience with it? I'm more of a Linux guy... getting Windows was tough enough for me... I'd reeeally rather not wet my hands with Visual Studio unless absolutely necessary.
Garf
AFAIK the SDK cannot be compiled with GCC.
robby says
QUOTE(Garf @ May 8 2006, 12:12) *

AFAIK the SDK cannot be compiled with GCC.

well, not as is... I wonder how much effort it would take to get it working though. Just thought I'd check in to see if anyone had done this before I lose hours on it :-P

Robby
bleh
IIRC, GCC is not binary-compatible with Visual Studio, so even if you got the SDK to compile with GCC, any plugins you built with it would either crash when you loaded them or simply refuse to load at all. So... I'd recommend not losing too many hours on it. :)
robby says
QUOTE(bleh @ May 8 2006, 12:53) *

IIRC, GCC is not binary-compatible with Visual Studio, so even if you got the SDK to compile with GCC, any plugins you built with it would either crash when you loaded them or simply refuse to load at all. So... I'd recommend not losing too many hours on it. smile.gif

Hmm, I appreciate the advice, but... when one compiles a DLL, the functions executes in and of themselves. Doesn't it follow then that I could use a DLL compiled with GCC from an EXE compiled with Visual Studio? After all, even you basic Visual Basic apps are using C++ DLLs from other compilers, are they not? Correct me if I've mistaken, but I thought that the binary incompatibility was with regard to precompiled headers and the likes. I was unaware that the function calls and APIs themselves would not be compatible.
foosion
QUOTE(robby says @ May 9 2006, 00:53) *
After all, even you basic Visual Basic apps are using C++ DLLs from other compilers, are they not? Correct me if I've mistaken, but I thought that the binary incompatibility was with regard to precompiled headers and the likes. I was unaware that the function calls and APIs themselves would not be compatible.
Those are not C++ DLLs, but COM DLLs. While Microsoft's compilers use a COM compatible C++ ABI, the same is not true for other compilers. The MIDL compiler generates hybrid header files that contain C++ definitions of the contained (COM) interfaces as well as compiler-independent C definitions.

foobar2000 is not based on COM, there are no C header files for foobar2000 and we will not create them, since it would be way too much work (and we don't believe in C for this kind of project).
Mike Giacomelli
QUOTE(robby says @ May 8 2006, 09:02) *

I'm more of a Linux guy... getting Windows was tough enough for me... I'd reeeally rather not wet my hands with Visual Studio unless absolutely necessary.


You want to do Windows developement using MS's APIs, but you're not willing to download the (free) MS compiler? blink.gif
Gabriel
Only the C ABI is standardised, the C++ one is not, so different compilers might use different ABIs.
The GCC ABI and the MSVC ABI are different, so you can not mix both.
When using a DLL from VB (as an example), you are using a C interface and not a C++ one.

Foobar's interfaces are C++, so you can not interface it to GCC.
This is by design.
robby says
QUOTE(Mike Giacomelli @ May 8 2006, 21:22) *

QUOTE(robby says @ May 8 2006, 09:02) *

I'm more of a Linux guy... getting Windows was tough enough for me... I'd reeeally rather not wet my hands with Visual Studio unless absolutely necessary.


You want to do Windows developement using MS's APIs, but you're not willing to download the (free) MS compiler? blink.gif

wait, when did visual studio become free?

also foosion and gabriel, thank you very much for your clarifications. i was unaware of the details and it makes a lot more sense to me now. thanks.
david_dl
QUOTE(robby says @ May 10 2006, 18:09) *

wait, when did visual studio become free?


http://msdn.microsoft.com/vstudio/express/visualc/download/
mixcherry
You can compile the SDK under Visual Studio Express (the free version of VS), however you must be warned, that this free version lacks some very important features, like Resource Editor (including Dialog Editor).

Also, foosion's tutorial is designed in the 'full' version and I remember getting some errors opening this tutorial in VS Express (something about Solution Folders??).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.