Peter,
I posed this question to the list awhile ago and got no reply: Did
Microsoft fix the bug that crashes windows if you leave a midi input
port open? If so, and this seems to be the case based on my limited
testing, then you don't need the pm_dll.dll -- either you're a good
citizen and call Pm_Terminate() (recommended) or you crash or forget and
rely on Windows to clean up. (In the past you'd have to reboot if you
left an input port open, at least with most system/driver combinations.)
If windows still has the bug (and maybe I just got lucky in my tests),
then you need to call Pm_Terminate() either directly or indirectly
through the DLL, which tries to clean up when the program exits. There's
a compiler switch to omit the code that initializes the DLL.
I suspect that there some interaction between the /TP, /clr, and
extern "C" declarations. If you compile portmidi code as C++, then the
symbols the compiler puts in the object file will be "decorated" with
type info, but if the caller is told these are 'extern "C"' functions,
it will be looking for undecorated symbols and the link will fail with
the messages you posted. My guess is if you take out the extern "C"
brackets in the header AND compile the portmidi code as C++, the link
will work.
-Roger
_______________________________________________
media_api mailing list
[EMAIL PROTECTED]
http://www.create.ucsb.edu/mailman/listinfo/media_api