views:

245

answers:

2

Hi,

I'm having a weird problem when trying to register the .dll i created using regsvr32.

During development everything went fine, the debug version registers and works fine. Now i wanted to create a Release version, but that Version does not register anymore.

regsvr32 comes up with the following error:

The module "mpegsplitter.dll" failed to load.

Make sure the binary is stored at the specified path or
debug it to check for problems with the binary or
dependent .DLL files.

The specified procedure could not be found.

Some research brought me to the dependency walker, which does tell me this

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

It also does show a dependency on "crtdll.dll" that the debug version does not have (The function view shows soem functions that normally should be in ole32.dll), which is colored red'ish.

So far so good, i guess its somehow related to what the dependency walker shows there.

But where do i go from here? How do i fix it? Any help would be greatly appreciated, that has been keeping me busy for several hours already.

Thanks!

A: 

Is it possible that the debug version is compiled with _ATL_MIN_CRT but the release version isn't? You can set this with the Minimize CRT Use in ATL project property as well.

ho1
Its not set. I tried to add it as a define, and just got yelled at that its no longer supported. This is VC08, guess its an "old" thing. Didn't see the UI option either.
Hendrik
My C++ knowledge is probably a bit out of date... I'd suggest comparing other project options and see if you can see any differences. Especially if one of them have `/MD` or `/MT` or similar and the other one's doesn't. Easiest to compare is if you look at the `Command Line` page in the properties.
ho1
That was my thought as well, i have another project that i based this one on, and the settings are identical, yet that one works.Maybe some weird directive is imported through some header somewhere?If someone is more used to working with dependency walker and the likes, i can provide the compiled .dll.
Hendrik
A: 

I fixed it. It was actually being caused by the order of some mingw libraries i included to link against ffmpeg. Oh well, how weird.

Hendrik