I have created a simple audio program with Visual basic 6 and would like to include Wavpack support, specifically the decoding functions. I keep getting a “Bad dll calling convention” error when I try to call the WavpackOpenFileInput function.
VB Declare statement
Private Declare Function WavpackOpenFileInput Lib "wavpackdll.dll" ( _
ByVal infilename As String, _
ByVal error As String, _
ByVal Flags As Long, _
ByVal norm_offset As Long) As Long
Calling fuinction
Public Function WaveUnpack(WavPackFileSpec As String) As Boolean
Dim WavpackContext As Long
Dim ErrorString As String
Dim Flags1 As Long
Dim norm_offset As Long
Flags1 = 0
norm_offset = 0
ErrorString = Space(80)
WavpackContext = WavpackOpenFileInput(WavPackFileSpec, ErrorString, Flags1, norm_offset)
End Function
Any help please
Microsoft Visual Basisc 6.0 (SP6)
Microsoft XP SP2
I have no idea how exactly to call from VB, but it seems like the string parameters would be by reference rather than by value, unless VB always passes strings by value.
Another thing is that perhaps the name has some decoration, like _WavpackOpenFileInput. Again, I have no VB experience.
Hopefully someone who does can take a look here and see an obvious problem...
David
I assume it's because VB can call only functions using stdcall calling convention. The WavPack library apparently uses C-calling convention (cdecl).
See google.com/search?q=call+cdecl+dll+function+visual+basic (http://www.google.com/search?q=call+cdecl+dll+function+visual+basic) for workarounds.