FMOD 변수의 광역 사용

2권에서 새로 도입된 오디오 프로그래밍 섹션에 대한 게시판입니다.

운영자: 류광

Locked
zstaiji
전체글: 3
가입일: 2009-01-04 22:51
연락처:

FMOD 변수의 광역 사용

전체글 글쓴이: zstaiji » 2009-01-12 01:16

이건 좀 기초적인 코딩지식에 대한 질문인것 같습니다.

FMOD 를 사용할 때 꼭 넣어주어야 하는게 있죠.

//------------------------------------
// FMOD 변수
//------------------------------------
FMOD::System *g_fmodsystem = 0;
FMOD::Sound *g_sounds[8] = {0,};
FMOD::Channel *g_channel[8] = {0,};
FMOD_RESULT g_result;

이건데요, 좀 더 큰 모듈단위로 코딩을 할 필요가 생겨서

fmoduse.cpp fmoduse.h 로 fmod 사용함수를 옮겼습니다.

그런데 문제는 위의 변수를 다른 cpp 에서도 사용해야 한다는거죠.

여러 cpp 에서 사운드를 재생하기 때문에 g_fmodsystem 변수로

a.cpp 에서 g_fmodsystem -> play() 시킬 때가 있고

b.cpp 에서 g_fmodsystem -> play() 시킬 때도 있죠.

이런경우엔 어떻게 여러분의 경우 하시는지 궁금하네요.

전 extern 으로 해볼려고 했는데 오류가 나네요.

play 하려는 a.cpp에서

extern FMOD::System *g_fmodsystem = 0;
extern FMOD::Sound *g_sounds[8] = {0,};
extern FMOD::Channel *g_channel[8] = {0,};
extern FMOD_RESULT g_result;

이렇게 하니 중복 선언 오류가 나버리고

위에껄 빼버리자니 g_fmodsystem 변수를 찾지 못해요.

이럴경우에 어떻게 해야 하는지 궁금합니다.

fmoduse.cpp 에 함수를 넣는 이유는

INITFMOD() 함수 안에

mp3등의 음원 파일을 로드시키기 때문이죠...

비회원

전체글 글쓴이: 비회원 » 2009-01-12 02:22

extern으로 선언하실 때는 초기값을 빼야지 않을까요?

zstaiji
전체글: 3
가입일: 2009-01-04 22:51
연락처:

윗분 지적 감사합니다.

전체글 글쓴이: zstaiji » 2009-01-12 14:12

변수 초기값을 빼주니 extern 오류는 해결 되는군요.

헌데, extern 으로만 해결을 보기엔 뭔가 아쉽습니다.

모듈프로그래밍을 좀 더 센스있게 하기위한 조언을 부탁드리겠습니다. ^^

Locked