0
0

I’m trying to learn from adion’s code I found posted here, and one of the API calls is:

Public Declare Function FSOUND_Stream_PlayEx Lib “fmod.dll” Alias “_FSOUND_Stream_PlayEx@16” (ByVal Channel As Long, ByVal Stream As Long, ByVal DSP As Long, ByVal startpaused As Byte) As Long

but I get the error:

Can’t find DLL entry point _FSOUND_Stream_PlayEx@16 in fmod.dll

Here’s what I’m trying:

lpSong = FSOUND_Stream_OpenFile(FileString, FSOUND_NORMAL Or FSOUND_MPEGACCURATE, 0)
Call FSOUND_Stream_PlayEx(FSOUND_FREE, lpSong, vbEmpty, False)

I have the latest version of the DLL, is there something I’m forgetting? How can I “browse” the DLL to see the entry points? Thanks for any help!

  • You must to post comments
0
0

Browsing DLLs? I’m pretty sure most VS products (not sure about VB) come with the Dependency Walker, which lets you view functions exported from DLLs. Since I’m not sure you have it or not, I’ll do it for you…

Hmmm, “_FSOUND_Stream_PlayEx@16” is correct; are you POSITIVE the DLL being loaded by VB is the latest? Also, if you have an older fmod.dll somewhere Windows might see it before the one in your VB app’s folder (for example, in c:\windows\system), Windows might get that one first. Search your system for fmod.dll, and update all of them with the newest DLL. Then try running your app again.

  • You must to post comments
0
0

That was it… Thanks for the timely suggestion. I was under the impression that VB looked for the DLL in the project dir first, then system, etc. Apparently I was wrong. I updated the win/sys dll and it works fine now.

I don’t have Dependency Walker installed. I’ll have to take a look at the CD to see if it’s on there, it sounds like exactly what I need.

Thanks again.

Long live Fmod.
rando

  • You must to post comments
0
0

I uploaded the Dependency Walker for you. Here it is:
http://invis.free.anonymizer.com/http:/ … epends.zip
(size = about 150 KB)

Just run depends.exe and open the DLL file you want to view. You can also associate DLL files with the dependency walker if you want (VS does this automatically when it installs it)

  • You must to post comments
0
0

Definitely what I was looking for. That will come in handy. Thank you.

randy

  • You must to post comments
0
0

[quote="rando":n8mt1jlc]That was it… Thanks for the timely suggestion. I was under the impression that VB looked for the DLL in the project dir first, then system, etc. Apparently I was wrong. I updated the win/sys dll and it works fine now. [/quote:n8mt1jlc]

It is correct in windows, that a dll is first looked for in the project dir, and then system, …
This would give no problems when running the compiled version of your program.

If you are however trying to debug the application from within visual basic, the real exe that is executing your code is vb.exe, which is located in your program files directory somewhere.
So windows will first look in your visual basic directory, in which you probably don’t have fmod.dll, and then in the system dir, where it found the older version.

Altough for debugging your application using the system directory is ok, it is not recommended when distributing your application.
So when you have an installer, make sure it drops fmod.dll in the application directory in order to prevent possible version conflicts.

  • You must to post comments
0
0

I’m sure you’re right about the vb.exe, but even if I run my program from VB, my program work and my fmod.dll is in my program directory.

  • You must to post comments
0
0

[b:3ilnqsp2]@J-F[/b:3ilnqsp2]
That’s because you probably don’t have fmod.dll in C:\Windows\System.

Search order:
1. Look in executable’s directory
2. Look in system directory
3. Look in current directory.

Yours works fine because VB sets the current directory to the project folder when an app starts. Since fmod.dll is in neither Program Files\Microsoft Visual Studio\VB98 or Windows\System, Windows uses the one in the current directory. In the case of rando’s situation, he had an older version in Windows\System, so the current directory wasn’t even looked at there.

  • You must to post comments
0
0

Ah… Thanks Bruce for the information, now I know why sometimes my program failed to load fmod.dll after getting an other “current directory” in a VB session.

  • You must to post comments
Showing 8 results
Your Answer

Please first to submit.