인데요.. 모듈에 함수가 vbmp3_setEqualizer 가 되어있고 인수는 pTable 로 되어 있습니다.
그런데 여기서 Dim pTable(9) As Long 은 창조로 따지자면 실수:pTable[10]; 이게 맞나요?
비베에서 pTable(9) <- 이게 변수의 배열아닌가요?
창조에서 실수를 배열로해서 정의하면 실수:수[10]; 이렇게 되는데요.. 그래서 그렇다고 생각하고 창조에서..
초기화명령에 편집에 실수:pTable[10]; 이렇게 하고요.. //10개의 변수를 저장할수 있다는 실수입니다.
//이렇게 10개의 변수를 스크롤바의 눈금으로 저장하고요..
//스크롤바의 최대는 240(120의두배)입니다.. 이퀄라이져값이 -120~120 까지 된다길래.. 위 같은 알고리즘이 나왔습니다.. 창조의 수직스크롤바는 눈금이 맨 위로 올라가야 값이 0이 되죠..
그래서 -1 을 곱했고요..
위처럼 했더니 맨 처음 스크롤바의 값이 양수인 상태에서 위의 명령어를 실행했더니 오류가 나면서 자동으로 프로그램이 종료되더군요.. 물론 이퀄라이져도 적용 안되더군요..ㅠㅠ
맨 처음스크롤바(스크롤바3)을 제외한 나머지것들은 먹통이고요.. 스크롤바3만 값이 양수로 되면 오류가 납니다..
지상현 2010-06-28 PM 9:16:29
VB에서 배열 0번 항목을 넘기는 부분은 ByRef라서 배열의 첫번째 요소의 참조를 주기 때문에 vbmp3에서도 나머지 배열 요소에 접근할 수 있지만,
창조에서는 그냥 배열 항목의 0번 값만 넘기기 때문에 vbmp3에서 기대하던 참조가 아니기 때문에 오류가 납니다.
이 경우는 메모리 오류기 때문에 a/v 오류가 나고 프로그램이 꺼지겠죠.
0번 항목이 스크롤바3이기 때문에 그걸 건드리면 오류가 나는 거고, 창조 0.9b 이하는 Api 호출할 때 값이 음수면 버그 때문에 호출 자체가 안 되기 때문에 음수일 경우에는 동작 자체를 안 합니다.