Puha... Den var slem... Ja du må undskylde der lige gik et stykke tid før jeg skrev tilbage, men jeg har først lige fundet ud af hvad der var galt, og hvordan man løser problemet :) Men jeg tror endelig det lykkedes...
For det første kan du builde dit projekt som både "Debug" og "Release" hvilket du nok allerede har opdaget. Det betyder også bare at du skal bruge forskellige .lib-filer til de 2 måder at builde. (Forklaringen bygger på at projektet er sat til debug)
Som standard står et projekt til at builde som "Debug", og der fortalte jeg dig tidligere at du skulle bruge filerne:
ogg.lib vorbis.lib osv...
Det er ikke helt rigtigt har jeg fundet ud af. Du skal faktisk bruge de tilsvarende filer der har et _d i slutningen af navnet. Altså:
ogg_d.lib vorbis_d.lib osv...
Nu ved jeg ikke om det er helt nok, for jeg bruger VC++7 og der har MS ændret lidt i navnene på nogle DLL'er, så der ikke længere findes en fil med navnet MSVCRTD.DLL.
Hvis du, når du kører programmet, får en besked om at det ikke kan finde MSVCRTD.DLL, eller du vil løse problemet, så det ikke opstår i senere versioner af VC++, så kan du bare læse videre... Selvom det måske bliver lidt kryptisk :)
Det du gør, er at du endnu engang, ændrer i navnene på de .lib-filer du linker til. Denne her gang skal du tilføje et _static i midt i navnet, så de kommer til at hedde:
ogg_static_d.lib vorbis_static_d.lib osv...
Dette har noget at gøre med at linke statisk, således at programmet ikke får brug for MSVCRTD.DLL-filen.
Hvis du prøver at kompilere nu, får du garanteret en ordentlig røvfuld fejl smidt i nakken bl.a. i form af en masse LNK2005-fejl.
Det du så gør nu, er at smutte forbi
www.vorbis.com og downloade de filer der hedder:
libogg source (1.0)
libvorbis source (1.0)
Så udpakker du libvorbis-1.0.zip, og åbner det VC++6 Project Workspace der hedder vorbis.dsw. Det ligger i Win32-mappen.
Nu skal du så ind i "Project Settings" ligesom i et tidligere svar, men denne gang skal du have fat i det faneblad der hedder "C/C++".
Nu vælger du de projekter i venstre side der hedder noget med static (Ctrl + click, for at vælge flere på en gang)
Så sætter du "Category" til "Code Generation", og bagefter sætter du "Use run-time library" til "Debug Multithreaded"
Nu skal du så bare lige for en sikkerhedsskyld skifte mellem alle de valgte projekter, og sikre at de bruger den indstilling.
Så lukker du dialogen (Project settings), og laver en "rebuild all" (eller hvad den nu hedder).
Hvis du holder øje med hvad den laver, ser du sikkert en hel masse Warnings, men den skulle gerne kompilere og builde fint alligevel.
Nu skal du tilbage til Win32-mappen, og ind i Debug-mappen for hvert af de static-projekter du lige har buildet... Kopier nu .lib-filen til den lib-mappe som findes i OggVorbis-SDK'et som du hele tiden har brugt, og bare overskriv de eksisterende filer.
HELT DET SAMME GØR DU NU FOR Ogg-1.0.zip filen.
Til sidst skal du bare ind i dit eget projekt, og sørge for at det ligeledes er sat til "Debug Multithreaded".
Og så krydser jeg ellers alt hvad jeg kan krydse for at det lykkedes :)
Sørg lige for at have en kopi liggende af SDK'et (Du har vel stadig Zip-filen), for jeg er ikke helt 100% sikker på hvilke konsekvenser det her har for andre projekter, selvom jeg egentlig skulle mene at det burde gå godt.
PS!!! Når du en dag er færdig med det program du er ved at lave, vil du vel gerne lave en "Release" build, af dit projekt. Så skal du igennem helt den samme smørre en gang til, men altid sørge for at projekterne er sat til "Release", før du ændrer i nogle af indstillingerne. Denne gang skal du selvfølgelig vælge de tilsvarende indstillinger der IKKE hedder noget med Debug... F.eks. skal "Code generation" når du kører "Release", hedde "Multithreaded", i stedet for "Debug Multithreaded"