개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.11 23:12

fmod 라이브러리 사용 시 오류 해결 방법

목록
  • NativeScript도사 9일 전 2025.07.11 23:12
  • 59
    1
저는 현재 fmod 라이브러리를 사용 중인데, 오류가 발생하여 해결 방법을 찾고 있습니다.

제가 사용하는 코드에서 오류가 발생하는 부분은 다음과 같습니다.

c

#include 

#include 



FMOD::System* system;

FMOD::Sound* sound;



int main() {

    FMOD::System_Create(&system);

    system->init(32, FMOD_INIT_NORMAL, NULL);

    sound = system->createSound("sound.wav", FMOD_DEFAULT, NULL, NULL);

    // 오류가 발생하는 부분

    sound->setVolume(0.5f);

    system->playSound(sound, NULL, false, &sound);

    return 0;

}



오류 메시지는 다음과 같습니다.



fmod.h(123) : error C2065: 'FMOD_ERR_INVALID_HANDLE' : undefined identifier



이 오류를 해결할 방법을 알고 싶습니다.

오류 메시지가 FMOD_ERR_INVALID_HANDLE로 나와서, sound가 NULL인 경우 오류가 발생하는 것 같습니다. 하지만 sound는 NULL이 아닌지 확인했습니다.

오류가 발생할 수 있는 이유를 알고 싶습니다.

또한 오류를 해결하기 위한 방법을 알려주세요.

위의 코드를 수정하여 오류를 해결할 수 있는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  9일 전



    해결 방법은 다음과 같습니다.

    1. FMOD 라이브러리를 올바르게 초기화하지 않은 경우입니다.
    FMOD 라이브러리를 초기화하기 위해 FMOD::System_Create() 함수를 사용하여 시스템 객체를 생성하고, FMOD::System::init() 함수를 사용하여 시스템을 초기화해야 합니다.
    초기화가 완료된 후에 sound 객체를 생성하고, sound 객체의 setVolume() 함수를 호출할 수 있습니다.

    2. sound 객체가 NULL인 경우입니다.
    sound 객체를 생성하기 전에 NULL 체크를 하여 sound 객체가 NULL인지 확인해야 합니다. 만약 sound 객체가 NULL인 경우, 오류 메시지가 FMOD_ERR_INVALID_HANDLE로 나타날 수 있습니다.

    위의 코드를 수정하여 오류를 해결할 수 있는 방법은 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    FMOD::System* system;
    
    FMOD::Sound* sound;
    
    
    
    int main() {
    
        // FMOD 라이브러리를 초기화하기 위해 시스템 객체를 생성합니다.
    
        FMOD::System_Create(&system);
    
        
    
        // 시스템을 초기화합니다.
    
        system->init(32, FMOD_INIT_NORMAL, NULL);
    
        
    
        // sound.wav 파일을 불러와 sound 객체를 생성합니다.
    
        if (system->createSound("sound.wav", FMOD_DEFAULT, NULL, &sound) != FMOD_OK) {
    
            // 오류가 발생한 경우, 오류 메시지를 출력합니다.
    
            FMOD_RESULT result = system->getSystemFlags();
    
            if (result == FMOD_ERR_FILE_NOT_FOUND) {
    
                printf("sound.wav 파일이 존재하지 않습니다.n");
    
            } else {
    
                printf("오류가 발생했습니다. 오류 코드: %dn", result);
    
            }
    
            return 1;
    
        }
    
        
    
        // sound 객체의 볼륨을 설정합니다.
    
        sound->setVolume(0.5f);
    
        
    
        // sound 객체를 재생합니다.
    
        system->playSound(sound, NULL, false, NULL);
    
        
    
        // 시스템을 종료합니다.
    
        system->release();
    
        
    
        return 0;
    
    }
    
    


    위의 코드를 수정하여 오류를 해결할 수 있습니다. sound 객체를 생성하기 전에 NULL 체크를 하여 sound 객체가 NULL인지 확인하고, sound 객체의 setVolume() 함수를 호출하기 전에 sound 객체가 NULL인지 확인합니다.

    2025-07-11 23:13

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,740건 / 17 페이지

검색

게시물 검색