Posted: Fri Jan 10, 2003 4:38 pm
Restored from previous forum. Originally posted by ricardo.
Hi,
I tried to call one DLL in PB but always crashing.
In VB i succesfully cal it by:
AND IT WORKS FINE WITHOUT ANY PROBLEM.
In PB i tried by this way:
Procedure.l EnumEncoding(nStatus.l)
SetGadgetText(1,Str(nStatus))
EndProcedure
And this DOSENT WORKS!!
Any idea for solve this situation?
Thanks in advance!!
Best Regards
Ricardo
Dont cry for me Argentina...
Hi,
I tried to call one DLL in PB but always crashing.
In VB i succesfully cal it by:
Code: Select all
Public Enum EncodeMode
BE_MP3_MODE_STEREO = 0
BE_MP3_MODE_JSTEREO = 1
BE_MP3_MODE_DUALCHANNEL = 2
BE_MP3_MODE_MONO = 3
End Enum
Public Declare Function EncodeMp3 Lib "MP3Enc.dll" (ByVal lpszWavFile As String, ByVal lpszOutFile As String, ByVal BitRate As Long, ByVal SampleRate As Long, ByVal EncMode As EncodeMode, lpCallback As Any) As Long
Public Function EnumEncoding(ByVal nStatus As Integer) As Boolean
If frmMain.pb1.Value nStatus Then
frmMain.lblPercent.Caption = nStatus & "%"
frmMain.pb1.Value = nStatus
End If
End Function
ret = EncodeMp3(txtFile.Text, txtOutput.Text, Val(cmbBitrate.Text), SampleRate, Mode, AddressOf EnumEncoding)AND IT WORKS FINE WITHOUT ANY PROBLEM.
In PB i tried by this way:
Procedure.l EnumEncoding(nStatus.l)
SetGadgetText(1,Str(nStatus))
EndProcedure
Code: Select all
#BE_MP3_MODE_STEREO = 0
#BE_MP3_MODE_JSTEREO = 1
#BE_MP3_MODE_DUALCHANNEL = 2
#BE_MP3_MODE_MONO = 3
Infile.s ="c:\windows\escritorio\1_Sweet.wav"
OutFile.s = "c:\windows\escritorio\1_SweetPB.Mp3"
BitRate.l = 128
SampleRate.l = 44100
Mode.b=#BE_MP3_MODE_STEREO
If OpenLibrary(0, "MP3Enc.dll")
*F = IsFunction(0, "EncodeMp3")
If *F
Result.l = CallFunctionFast(*F,Infile,OutFile,BitRate,SampleRate,Mode,@EnumEncoding())
EndIf
CloseLibrary(0)
MessageRequester("Result",Str(Result),0)
EndIf
Any idea for solve this situation?
Thanks in advance!!
Best Regards
Ricardo
Dont cry for me Argentina...