Excel won't load function from C++ DLL
===

Good afternoon, all.

I was playing around today with Excel & VBA loading some DLLs and seeing what kind of trouble I could get into.

I made my own, very simple DLL to try it out. I can't for the life of me figure out why, but I keep getting the "Specified DLL function not found" message when I try to run.



Here's what I have in my workbook...

        Private Declare Sub MouseClick Lib "\location\of\myDLL" Alias "_MouseClick" ()
        'I have also tried...
        'Private Declare Sub MouseClick Lib "\location\of\myDLL" ()
        
        Sub Test()
                MouseClick
        End Sub



Here's my simple function declaration in the DLL...

        extern "C" 
        {
                void MouseClick();
                ...
        }



I thought that maybe the name of my function was being mangled when compiled, so I used 'nm' to check...

        $ nm myDLL.dll | grep MouseClick
        6df81254 T _MouseClick
        
        $ nm -C myDLL.dll | grep MouseClick
        6df81254 T MouseClick

I don't understand... I've used both of those to try to get it to work.
Also, I disassembled a function that calls the MouseClick function using gdb...

        $ gdb myDll.dll
        (gdb) disass testFunction
        Dump of assembler code for function testFunction:
           0x6df81327 <+0>:     push   %ebp
           0x6df81328 <+1>:     mov    %esp,%ebp
                           ...
           0x6df81361 <+58>:    call   0x6df81a44 <SetCursorPos@8>
           0x6df81366 <+63>:    sub    $0x8,%esp
        -> 0x6df81369 <+66>:    call   0x6df81254 <MouseClick>
           0x6df8136e <+71>:    jmp    0x6df8138a <testFunction+99>
                           ...
           0x6df8138a <+99>:    leave
           0x6df8138b <+100>:   ret
        End of assembler dump.

Here, too the function is referred to as "MouseClick".

I may be going about this all the wrong way, but I don't understand why gdb and nm are both showing a "clean" function name, but Excel won't work with either of the ones I assumed it would be.  I did get the dll to work with my VBA sub for a time, but I changed the document and now it's not working.

Would someone that has done this before be kind enough to point me in the right direction about all this?  What should I name the function in Excel? Why is nm showing a function name that isn't mangled? Am I even going about this the right way?

Thanks to all in advance!
