Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: VS2008 SP1 foo_sample compilation (Read 8770 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

VS2008 SP1 foo_sample compilation

I'm trying to compile the example project foo_sample with VS2008 SP1 Professional and WTL 8.0 installed, but I get a lot of unresolved external symbol errors. I've added additional include path to WTL include dir and shared.lib from sdk dir to additional dependencies but this didn't help. The same problem is with tutorial example (foo_tutorial1). Here is the output from foo_sample compilation:
http://pastebin.com/4wFfW0yQ
Why aren't the sample projects compilable?

VS2008 SP1 foo_sample compilation

Reply #1
It looks like project dependencies are not set up correctly. The missing symbols are from the SDK projects (foobar2000 component client, foobar2000 SDK, ...).

VS2008 SP1 foo_sample compilation

Reply #2
Why some of the SDK projects have both .vcproj and .vcxproj, while others only .vcxproj? Is this "SDK" dedicated to VS2010 only?
I compiled all of projects (created new .vcproj where necessary) and linked statically to foo_sample project. Now I have problem with multiple definitions of symbols (despite the addition of /NODEFAULTLIB to all static libs projects):
http://pastebin.com/51CcKn1d (StrCmpLogicalW missing is not a problem, I will fix it later).
Is there any OOTB working version of plugin sample?

VS2008 SP1 foo_sample compilation

Reply #3
All projects you create default to dynamic runtime, while the supplied projects are set to static runtime. You should solve this by correcting the settings, not by adding /NODEFAULTLIB switches.

VS2008 SP1 foo_sample compilation

Reply #4
Why some of the SDK projects have both .vcproj and .vcxproj, while others only .vcxproj? Is this "SDK" dedicated to VS2010 only?

Good question, I've asked a similar one here already but got no answer.

VS2008 SP1 foo_sample compilation

Reply #5
Why some of the SDK projects have both .vcproj and .vcxproj, while others only .vcxproj? Is this "SDK" dedicated to VS2010 only?

Good question, I've asked a similar one here already but got no answer.

Found that rather... interesting... myself.

For the "foobar2000_SDK.vcxproj", I just created a new Win32 Project in a safe place with the correct name ("foobar2000_SDK.vcproj"), changed it to a Static Library (.lib), and copied and added all of the ./foobar2000/SDK source files to it. Don't bother building it. Then copy this (fixed) project file to ./foobar2000/SDK. With a little tweaking, it works. Make sure that:
For Debug Build:
____C/C++ Debug Information Format = /Zi
____C/C++ Runtime Library = /MTd
For Release Build:
____C/C++ Debug Information Format = /Zi
____C/C++ Runtime Library = /MT

As to why the Devs broke VS2008 support... even if it was unintentional... they're not talking.

P.S. The DSP tutorial resource will not load in the VS2008 editor (it crashes, probably a VS2010 ver.)

VS2008 SP1 foo_sample compilation

Reply #6
The developers probably broke VS2008 support because it became troublesome maintaining project files for versions of Visual Studio that they no longer keep installed. Of course, since they are just text files, I suppose it is possible to edit them to include newly added source files, but that doesn't guarantee the code will compile.