Zapytanie: Integracja libsndfile z Visual Studio 2010 C ++. Błąd: nie znaleziono libsndfile.dll
Uczę się, jak czytać pliki wav do C ++ jako część mnie uczącej się C ++. Znalazłem wiele zasobów online, które zalecają następującą bibliotekę:biblioteka libsnfile Poszedłem więc za poniższymi samouczkami, aby przetestować podstawową funkcjonalność biblioteki, ale nie mogę skompilować biblioteki z Visual Studio 2010.
Szukałem w Internecie następującego błędu, ale nie znalazłem niczego przydatnego dla mojego konkretnego błędu. Pobrałem znaleziony instalator okien libsndfile C ++tutaj. Użyłem wersji 32-bitowej, ponieważ używam wersji konsoli Win32 C ++. Jednak mój Visual Studio jest 64-bitowy. Po pobraniu instalatora wykonałem następujące czynności:
Poszedłem do Visual Studio. W ramach mojego projektu wykonałem następujące czynności:
W właściwościach projektu: 1. VC ++
Include >> added ... libsnfile include Library >> dodano ... libsnfile lib 2. C C ++ Dodano następujący katalog jako dodatkowe zależności
... libsnfile lib libsndfile-1.lib
Zrobiłem to, aby dodać tę bibliotekę innej firmy do mojego projektu. Następnie, aby przetestować, uruchomiłem następujący kod:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <sndfile.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("This is a test\n");
getchar();
return 0;
}
Kodowałem to, aby mieć pewność, że będę mógł uzyskać dostęp do pliku sndfile.h w moim programie i wszystko skompilowane. Problem wystąpił, gdy próbowałem zaimplementować następujący kod:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <sndfile.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("This is a test\n");
//This will be the length of the buffer used to hold samples while the program processes them.
//A SNDFILE is like FILE in a standard C library. Consequently, the sf_open_read and sf_open_write functions will return an
//SNDFILE* pointer when they successfully open the specified file.
SNDFILE* sf = NULL;
/*SF_INFO will obtain information of the file we wish to load into our program. */
SF_INFO info;
/*This is where the program will open the WAV file */
info.format = 0;
sf = sf_open("C:\Users\GeekyOmega\Desktop\gameon.wav", SFM_READ, &info);
if(sf == NULL)
{
printf("Failed to open the file.\n");
exit(-1);
}
getchar();
return 0;
}
Następnie pojawia się błąd systemowy, gdy klikam uruchamianie w studio wizualnym, gdy próbuję uruchomić program. To mówi,
The program can't start because libsnfile-1.dll is missing from your computer.
Try reinstalling the program to fix this problem.`
Próbowałem 64-bitowego instalatora systemu Windows i próbowałem tego, ale to nie zadziałało. Czy ktoś rozumie, co robię? Używam programu Visual Studio 2010 w systemie Windows 7 jako mojego środowiska programistycznego.
Przepraszam, jeśli popełnię głupi błąd, ale byłbym wdzięczny, gdyby ktoś mógł mi pomóc. Próbowałem kilku hackich poprawek, o których mówiłem powyżej, ale nic nie zadziałało.
EDYCJA: Mam również świadomość tego wątkututaj, ale to nie ma żadnego sensu dla mojego obecnego problemu, ponieważ nie robię żadnej z tych rzeczy, o których mówią.
Pozdrawiam serdecznie, GeekyOmega