Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (no subject)



I'm cc:ing the list on this, because what you are describing is a common
problem for developers writing dynamically loaded QTSS API modules.

on 12/8/00 10:52 AM, UJWAL PAIDIPATHI at email@hidden wrote:

> HI Denis,
> Thanks a lot. I am using VC++ 6.0. I was
> able to compile the dll. But when I start the server
> the server does not load the DLL, it gives the
> following message.
> "The module QTSSSANMODULE is not a compatible QTSS API
> module."
> 
> I am not sure what type of DLL is the server
> expecting. Anyways that was one part of my problem.
> 
> Thanks a lot
> Ujwal

The reason why that message is being displayed is because the server is
looking in your dll for a symbol with the same name as the name of your
module, and the suffix _Main (see QTSS API docs on making a dynamic module).
If my module is QTSSFooModule.dll, there *must* be a function called
QTSSFooModule_Main in the module dll.

The reason why it isn't finding this symbol is probably one of these three
things:

1. The function isn't there.
2. It isn't declared extern "C", in which case the C++ compiler will munge
the symbol name.
3. On Win32, this function needs to be prefixed: __declspec(dllexport), or
else the symbol will not be exported outside the DLL.

The safest thing to do is to follow to the letter the sample dynamic modules
in the streaming server project. The QTSSAccessModule.h file, for instance,
has the following text:

#include "QTSS.h"

extern "C"
{
    EXPORT QTSS_Error QTSSAccessModule_Main(void* inPrivateArgs);
}

EXPORT is a macro defined in our PlatformHeader.h file, for win32 it is set
to be __declspec(dllexport)

Also note that the only place where the source to our 2.0.1 WinNT/2000
binary tarball lives is in CVS (the 2.0.1 source tarball is UNIX only). To
find it, become a registered Apple public source CVS user, and check out the
DSS code with the 2.0.1-Windows tag (I forget the exact name of the tag, but
it is something pretty obvious).

Hope that helps!

-- 
Denis Serenyi
QuickTime Streaming Server Engineering
email@hidden




Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.