how to export functions by name for ctype

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • rych

    how to export functions by name for ctype

    I'm on Windows with VS2005 testing ctypes on a very simple dll
    I create a test.dll project which exports a function fntest(). I don't
    touch anything in the autogenerated source and build it. I can load
    the dll but can't access the function by its name fntest. Only by
    ordinal number or calling getattr with "?fntest@@YAHXZ ". How do I
    export functions by name? It's probably rather a VS2005 question, but
    I'm a bit disappointed ctypes doesn't work with a default export
    convention.
  • Nick Craig-Wood

    #2
    Re: how to export functions by name for ctype

    rych <rychphd@gmail. comwrote:
    I'm on Windows with VS2005 testing ctypes on a very simple dll
    I create a test.dll project which exports a function fntest(). I don't
    touch anything in the autogenerated source and build it. I can load
    the dll but can't access the function by its name fntest. Only by
    ordinal number or calling getattr with "?fntest@@YAHXZ ". How do I
    export functions by name? It's probably rather a VS2005 question, but
    I'm a bit disappointed ctypes doesn't work with a default export
    convention.
    I guess you've compiled your DLL with C++ and the above is a C++
    mangled name.

    Either compile it with C, or export the names in an extern "C" { }
    block.


    --
    Nick Craig-Wood <nick@craig-wood.com-- http://www.craig-wood.com/nick

    Comment

    • rych

      #3
      Re: how to export functions by name for ctype

      On 23 Jun, 10:32, Nick Craig-Wood <n...@craig-wood.comwrote:
      rych <rych...@gmail. comwrote:
       I'm on Windows with VS2005 testing ctypes on a very simple dll
       I create a test.dll project which exports a function fntest(). I don't
       touch anything in the autogenerated source and build it. I can load
       the dll but can't access the function by its name fntest. Only by
       ordinal number or calling getattr with "?fntest@@YAHXZ ". How do I
       export functions by name? It's probably rather a VS2005 question, but
       I'm a bit disappointed ctypes doesn't work with a default export
       convention.
      >
      I guess you've compiled your DLL with C++ and the above is a C++
      mangled name.
      >
      Either compile it with C, or export the names in an extern "C" { }
      block.
      >
      --
      Nick Craig-Wood <n...@craig-wood.com--http://www.craig-wood.com/nick
      That fixed it, thank you.

      Comment

      Working...