Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Правильно указать путь к dll-ке


Автор: Voldemar2004 13.5.2005, 11:31
Кидаем на форму CommonDialogControl, 4-е кнопки, меню Open, Label1:
скачал библиотеку для работы с мультимедией (XviD, DVD - играет даже отдельные vob'ики, wav, mp3, bmp, jpg, gif и т.п.):

http://hiprog.com/vb/dwn/plsound.zip


Код

Private Declare Sub PlSound Lib "j:\SOUND_DLL\plsound.dll" (ByVal musik As String)
Private Declare Sub StSound Lib "j:\SOUND_DLL\plsound.dll" ()
Private Declare Sub PausSound Lib "j:\SOUND_DLL\plsound.dll" ()
Private Declare Sub ResumSound Lib "j:\SOUND_DLL\plsound.dll" ()

Option Explicit
Dim FileMusic As String
Dim DllPath As String


Private Sub Command1_Click() ' play
DllPath = App.Path & "\plsound.dll"

FileMusic = Label1.Caption
If FileMusic <> "" Then
PlSound (FileMusic)
End If
End Sub

Private Sub Command2_Click() ' stop
On Error Resume Next
StSound
End Sub

Private Sub Command3_Click() ' pause
On Error Resume Next
PausSound
End Sub

Private Sub Command4_Click() ' продолжить
On Error Resume Next
ResumSound
End Sub

Private Sub mnuExit_Click()
End
End Sub

Private Sub mnuOpen_Click()
On Error Resume Next
CommonDialog1.Filter = "Звук,видео,графика (*.*)|*.*"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
Label1.Caption = CommonDialog1.FileName
End Sub


Проблема лишь в том, чтобы библитека plsound.dll правильно распознавалась в той папке, где лежит мой проект:

Private Declare Sub PlSound Lib DllPath (ByVal musik As String)
пишет ошибку, что DllPath - строковая константа, оно и понятно, но как сделать чтобы нормально все распознавалось?

Думаю, что понятно объяснил.

Автор: Naghual 13.5.2005, 11:39
А не указывай путь при декларации!
Барсик будет искать в Системном каталоге виндовоза, где-то в каталоге общих файлов (не помню точно), и затем в каталоге проекта.

Автор: Akina 13.5.2005, 12:16
МОжно занести DLL в реестр в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs - тогда точно никаких путей не потребуется...

Автор: Voldemar2004 13.5.2005, 13:09
Цитата

А не указывай путь при декларации!
Барсик будет искать в Системном каталоге виндовоза, где-то в каталоге общих файлов (не помню точно), и затем в каталоге проекта.


Здесь такой фокус не проходит. smile

Цитата

МОжно занести DLL в реестр в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs - тогда точно никаких путей не потребуется...


Это типа при FormLoad'e. Да?

Автор: Akina 13.5.2005, 13:29
Цитата(Voldemar2004 @ 13.5.2005, 14:09)
Это типа при FormLoad'e. Да?

Это типа при инсталляции... и не забыть удалить при деинсталляции.

Автор: efedron 3.6.2005, 20:12
Voldemar2004
библиотека распознается прекрасно (особенно когда проект скомпилен smile)
вот только не нужная она абсолютно - делает то же самое, что и функция mciSendString, только не дает никаких возможностей, кроме паузы smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)