Instead of using 'extern "C"' and getting a warning, I found out that moving 
the plugin structure out of the 'avm' namespace works. using namespace avm' 
is needed for the functions calls and 'codec_plugin_t'.

So change something like the following:

...<snip>...
codec_plugin_t avm_codec_plugin_win32 =
{
...<snip>...
};

AVM_END_NAMESPACE;

to this:

...<snip>...
AVM_END_NAMESPACE;

using namespace avm;
codec_plugin_t avm_codec_plugin_win32 =
{
...<snip>...
};

The problem is that c++ mangles the names of class members in the executable 
(at least, that's what i've read). Since the avm_codec_plugin_* structures 
are within the 'avm' namespace, the avm_codec_plugin_* names get mangled. 
dlsym is looking for a 'avm_codec_plugin_' symbol, but the actual symbol in 
the binary is similar to 'avm23zavm_codec_plugin_'.

    Tim



_________________________________________________________________
Join the world�s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


_______________________________________________
Avifile mailing list
[EMAIL PROTECTED]
http://prak.org/mailman/listinfo/avifile

Reply via email to