VB dll doesnt work in python with ctypes (function * not found)
ctypes, dll, python, vb.net
Solution
You cannot do this. The DLL you’re producing is a .NET assembly, or, if you expose a COM interface, it’s a COM component.
Python’s `ctypes` module only supports C ABI DLLs.
Problem
I struggle to create dll in VB which will be visible for python, none of VB functions are visible when I import dll into python Here's what I do: - Simplest ever VB class ``` Public Class MyFunctions Public Function AddMyValues(ByVal Value1 As Double, ByVal Value2 As Double) Dim Result As Double Result = Value1 + Value2 Return Result End Function End Class` ``` I save it as a dll (Build from Visual Studio 2010) I try if it works by importing it into othoer VB project (it works fine): ``` Imports ClassLibrary1 Module Module1 Sub Main() Dim Nowa As New ClassLibrary1.MyFunctions Dim Result As String Result = Nowa.AddMyValues(123, 456.78).ToString Console.WriteLine(Result) Console.ReadLine() End Sub End Module ``` - I load it into python and try to use it: ``` from ctypes import * MojaDLL = cdll.LoadLibrary("E:\\ClassLibrary1.dll") MojaDLL.MyFunctions Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Python25\lib\ctypes\__init__.py", line 361, in __getattr__ func = self.__getitem__(name) File "C:\Python25\lib\ctypes\__init__.py", line 366, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) AttributeError: function 'MyFunctions' not found ``` instead of MyDll.MyFunctions i also tried: `MyDll.MyFunctions() , MyDll.MyFunctions.AddMyValues(1,2) , MyDll.MyFunctions.AddMyValues`. What's wrong here? I don't understand it. PS. there's similar unsolved problem: calling vb dll in python