How can I call a c++ function using python?

I want to know if there’s a way to use a c++ function inside a python code

For example, after doing my research I did find this solution using .dll file. But It can’t find the function My code:


    #include <iostream>
    extern int add(int a, int b) {
    return a+b;
    int main()
        std::cout << "Hello World! from C++" << std::endl;
        return 0;

compiling it using cmd:

> g++ fun.cpp -o fun.dll

Calling the function using Python, ctypes:

    from ctypes import *
    import os
    mydll = cdll.LoadLibrary("C:/Users/User/Desktop/ctypes/fun.dll")

    result= mydll.add(10,1)
    print("Addition value:-"+result)

But I had this error:

Traceback (most recent call last): File “c:\Users\User.vscode\extensions\ms-python.python-2019.10.41019\pythonFiles\”, line 43, in main(ptvsdArgs) File “c:\Users\User.vscode\extensions\ms-python.python-2019.10.41019\pythonFiles\lib\python\old_ptvsd\”, line 432, in main run() File “c:\Users\User.vscode\extensions\ms-python.python-2019.10.41019\pythonFiles\lib\python\old_ptvsd\”, line 316, in run_file runpy.run_path(target, run_name=’ main ') File “C:\Python36\lib\”, line 263, in run_path pkg_name=pkg_name, script_name=fname) File “C:\Python36\lib\”, line 96, in run_module_code mod_name, mod_spec, pkg_name, script_name) File “C:\Python36\lib\”, line 85, in run_code exec(code, run_globals) File “c:\Users\User\Desktop\ctypes\”, line 5, in result= mydll.add(10,1) File "C:\Python36\lib\", line 361, in getattr func = self. getitem (name) File “C:\Python36\lib\”, line 366, in getitem func = self._FuncPtr((name_or_ordinal, self)) AttributeError: function ‘add’ not found

Have you looked at the boostpython -
The above link provide an example for a simple ‘hello world’ implementation


Thank you for your suggest.
I did use ctypes instead:
Here is my solution:

I figure it out thank you so much

[#ifdef]( _WIN32
# define API __declspec(dllexport)
# define API

extern "C" API int add(int a, int b) {
return a+b;


from ctypes import *

dll = CDLL('fun')
result = dll.add(10,1)
print('Addition value:',result)


Addition value: 11

1 Like