Почему такой код OpenAL дает такой Erros в Visual studio 2008? - PullRequest
0 голосов
/ 03 ноября 2010

В общем, мой код очень прост - я пытаюсь написать программу Microphone Echo, и это ее начало (как мне кажется - я новичок в OpenAL)

#include "stdafx.h"
#include <iostream> 
#include <windows.h> 
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>  

#include <al.h>
#include <alc.h>
#include <alut.h>


using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    cin.get();
    return 0;
}
void BlockingCapture(ALCdevice *mCaptureDevice, ALCubyte *pBuffer, 
                     ALCint iSamplesToGet) 
{ 
    ALCint capturedSamples = 0; 
    while(capturedSamples < iSamplesToGet) 
    { 
        ALCint avail; 
        alcGetIntegerv(mCaptureDevice, ALC_CAPTURE_SAMPLES, 1, &avail); 
        if(avail > 0/*or some threshold*/) 
        { 
            avail = min(avail, iSamplesToGet-capturedSamples); 
            alcCaptureSamples(mCaptureDevice, pBuffer, avail); 
            capturedSamples += avail; 
            pBuffer += avail; 
        } 
        else 
            Sleep(0); 
    } 
} 

, когда я пытаюсь скомпилировать его, это дает мне 3 ошибки

1) Error 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__alcCaptureSamples в функции "void __cdecl BlockingCapture(struct ALCdevice_struct *,unsigned char *,int)" (?BlockingCapture@@YAXPAUALCdevice_struct@@PAEH@Z) HelloOpenALMic.obj HelloOpenALMic

2) Error 2 error LNK2019: ссылка на неразрешенный внешний символ __imp__alcGetIntegerv в функции "void __cdecl BlockingCapture(struct ALCdevice_struct *,unsigned char *,int)" (?BlockingCapture@@YAXPAUALCdevice_struct@@PAEH@Z) HelloOpenALMic.obj HelloOpenALMic

3) Error 3 fatal error LNK1120: 2 неразрешенных внешних элементов C:\Users\Avesta\Documents\Visual Studio 2008\Projects\OJ\OJ\V3\Debug\HelloOpenALMic.exe HelloOpenALMic

Кстати: (Я взял этот пост в качестве отправной точки для моего кода.)

Как от них избавиться?

1 Ответ

1 голос
/ 03 ноября 2010

Вам необходимо связать библиотеку OpenAL с вашим приложением.

Перейдите в свойства проекта-> Linker-> Input и добавьте openal32.lib в список.

...