如题,使用vs2019编译一个动态库dll,并在python中使用ctypes调用它

编译dll

  1. 打开Visual Studio 2019创建动态链接库dll项目
    创建dll项目

  2. 删掉framework.hdllman.cpp
    删除前
    删除后

  3. 删除pch.h中的

    1
    #include "framework.h"
  4. 新建hellodll.cpp文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "pch.h"
    #include <stdio.h>
    #include <windows.h>


    extern "C" __declspec(dllexport) int __cdecl add(int a, int b);

    int __cdecl add(int a, int b)
    {
    return a + b;
    }
  5. 解决方案 -> 属性,平台为x64,配置管理器中也为x64
    解决方案
    配置管理器

  6. 生成 -> 生成解决方案
    生成解决方案
    dll路径

使用python中的ctypes调用

1
2
3
4
5
6
# -*- coding: utf-8 -*-
import ctypes

dll = ctypes.CDLL('D:\\gitRepo\\dllrun\\hellodll.dll')
print(dll)
print(dll.add(1,2))

输出如下

1
2
<CDLL 'D:\gitRepo\dllrun\hellodll.dll', handle 7ffa26370000 at 0x24c0fa23788>
3