Запрос: интеграция libsndfile с Visual Studio 2010 C++. Ошибка: libsndfile.dll не найдена
Я учусь читать в wav-файлах на C++ как часть моего обучения C++. Я нашел много ресурсов в интернете, которые рекомендовали следующую библиотеку: libsnfile library Поэтому я следовал некоторым учебным пособиям ниже в тестировании основных функций библиотеки, но я не могу заставить библиотеку компилироваться с Visual Studio 2010.
Я искал в интернете следующую ошибку, но не нашел ничего полезного для моей конкретной ошибки. Я скачал libsndfile C++ установщик windows нашел здесь . Я использовал 32-битную версию, так как я использую консольную версию win32 C++. Однако моя Visual Studio является 64-разрядной. После загрузки установщика я сделал следующее:Я вошел в Visual Studio. В рамках моего проекта я сделал следующее:
В свойствах проекта: 1. VC++
Я сделал это, чтобы добавить эту стороннюю библиотеку в свой проект. После этого для проверки я запустил следующий код:Включить > > добавлено ...libsnfileвключать Библиотека > > добавлено ...libsnfileЛиб 2. CC++ Добавлен следующий каталог в качестве дополнительного зависимости
...libsnfile liblibsndfile-1.lib
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <sndfile.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("This is a testn");
getchar();
return 0;
}
Я закодировал это, чтобы убедиться, что я могу получить доступ к sndfile.h в моей программе и все скомпилировано. Проблема возникла, когда я попытался реализовать следующий код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <sndfile.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("This is a testn");
//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:UsersGeekyOmegaDesktopgameon.wav", SFM_READ, &info);
if(sf == NULL)
{
printf("Failed to open the file.n");
exit(-1);
}
getchar();
return 0;
}
Затем я получаю системную ошибку при нажатии кнопки выполнить в visual studio, когда я пытаюсь запустить свою программу. Оно говорит:
The program can't start because libsnfile-1.dll is missing from your computer.
Try reinstalling the program to fix this problem.`
Я попробовал 64-разрядный установщик windows и попробовал это, но это не сработало. Кто-нибудь понимает, что я делаю бегом? Я использую Visual Studio 2010 в Windows 7 в качестве среды разработки.
Я прошу прощения, если совершаю глупую ошибку, но я был бы очень признателен, если бы кто-нибудь мог мне помочь. Я попробовал несколько хитрых исправлений, как я говорил выше, но ничего не сработало.EDIT: я также знаю об этом потоке здесь , но это не имеет никакого смысла для моего текущая проблема, поскольку я не делаю ничего из этого пути, о котором они говорят.
Теплые Пожелания, GeekyOmega
1 ответ:
Я исправил эту проблему. Для будущих читателей это очень распространенная проблема, я думаю. Я положил его .библиотека dll в папке debug моего проекта Visual Studio. Visual Studio не смог увидеть его .dll файл в противном случае. После этого программа запустилась, как и ожидалось, и запустилась. Если это не решит проблему для вас, то я предлагаю что-то еще может происходить.