Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Creat0R
Да уж... я и раньше не разбирался во всём этом, а теперь они ещё больше всё усложнили...
В общем в некоторых местах нужно вместо "int" прописывать "int:cdecl" - спрашивается зачем такие сложности, ведь до этого всё прекрасно работало без всяких cdecl и библиотека всё понимала...
Я её переписал немного, убрал лишнее и использую как UDF.

Пример вызова:
Код: Выделить весь код
#include <bassmod.au3>
$dll = DllOpen("bassmod.dll")
BassMod($dll, "Awesome - Dawn Main Theme.xm", 1024+4)
UDF:
Код: Выделить весь код
#include-once
; Поддерживает: *.mod *.xm *.it *.s3m *.mtm
Func BassMod($BassModDll,$sPath,$flag=0)
	$init = DllCall($BassModDll, "int", "BASSMOD_Init", "int", -1, _  ;device
							"int", 44100, _  ;freq Hz
							"int", 0)       ;flag
	$fName = DllStructCreate("char[255]")
	DllStructSetData($fName, 1, $sPath)
	$load = DllCall($BassModDll, "int", "BASSMOD_MusicLoad", "int", False, _  ;loading from memory
							"ptr", DllStructGetPtr($fName), _ ;file
							"int", 0, _   ;offset
							"int", 0, _   ;length
							"int", $flag) ;flag
	$music_handle = $load[0]
	DllCall($BassModDll, "int:cdecl", "BASSMOD_MusicPlay", "int", $music_handle)
EndFunc

Последний раз редактировалось Diamond, 18-07-2007 в 04:36. Причина: Удалил строчку: [$music_handle = -1] имхо лишняя...

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:45, 17-07-2007 | #155