vs2015开发python_VS2015 编写C++ DLL库及C++、 C#、python 调用

VS2015生成c++dll

C++ 程序调用 dll

C# 程序调用 dll

1. VS2015 生成C++dll

可以有两种方法通过_declspec(dllexport)

extern "C" __declspec(dllexport) int __stdcall add(int a, int b);嫌上面太麻烦,windows系统下可用 .def文件

其中:extern "c" 防止导出的函数名字是乱码

使用 def导出dll步骤如下:

新建Login.h

//登录接口

extern "C" int _stdcall Login(char* username, char* password);

//退出接口 无返回值

extern "C" bool _stdcall Logout();

新建Login.cpp

int _stdcall Login(char* name, char* pwd) {

}

新建模块定义文件Login.def

LIBRARY Logindll

EXPORTS

Login @ 1

Logout @ 2

Heartbeat @3

生成文件Debug 和Release下 Login.dll Login.lib

2.C++ 调用

需要3个文件 Login.h Login.dll Login.lib

根据Debug和Release 分别把三个文件拷贝到对应工程目录下

步骤:右键添加现有项 选择Login.h

右键添加现有项 选择Login.lib

在使用的地方 #include “Login.h”

直接使用函数

{

Login("user","pwd");

}

3.C# 调用

需要1个文件 Login.dll将Login.dll 拷贝到相对应的debug或release目录下

使用时代码如下

[DllImport("Logindll.dll", EntryPoint = "Login", CallingConvention = CallingConvention.StdCall)]

extern static int Login(string name,string pwd);

4. python调用

需要2个文件 Login.dll Login.lib将上面两个文件拷贝到.py文件同名目录

通过ctypes调用

注意python是x86 x64 和dll的版本保持一致

from ctypes import *

import os

CUR_PATH=os.path.dirname(__file__)

dllPath=os.path.join(CUR_PATH,"Logindll.dll")

pDll=cdll.LoadLibrary(dllPath)

pResutl= pDll.Logout()

print (pResutl)

注意:

x86 x64 debug release 库的对应关系

参考:CSDN-专业IT技术社区-登录​blog.csdn.net在VS2015中用C++编写可被其它语言调用的动态库DLL - 优秀afa - 博客园​www.cnblogs.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值