On 09/02/2013 20:44, Andrej Mitrovic wrote:
On 2/9/13, Ben Davis <ent...@cantab.net> wrote:
Hi,

I'm working on a multimedia driver DLL, i.e. one that Windows loads on
behalf of any program that uses the Windows multimedia API.

I'm using a .def file with an EXPORTS section, and I've also got all the
relevant functions marked as 'export' in the code.

Export in code allows you to avoid listing exported functions in the
DEF file. However you should likely still use the DEF file even if it
lacks a list, as I recall there's a bug related to not using DEF files
(I can't find the issue right now).

(Oops, silly Thunderbird)

I know which issue you mean, because I came across it earlier. It's something about needing "EXETYPE NT" and "SUBSYSTEM WINDOWS" or else something bad happens with thread-local storage. I don't think it had anything to do with exports.

What you're telling me (about the purpose of export in code) is what I assumed was the intention, but the fact is it's not behaving that way. If I mark the functions as export in the code, but remove the EXPORTS section from the .def file (but keep the rest of the .def file), then the DLL doesn't work, which suggests that the export table did not contain those functions.

Perhaps the exports in the code only apply if the .def is entirely missing? Is that the desired behaviour? (I won't be trying that, as I know it would break in other ways then.)

Ben :)

Reply via email to