python程序调⽤CC++代码
这篇⽤来记录在些模拟Canoe⽣成CAN数据桢⼯具时遇到的问题,
⽣成CAN数据桢,主要分为两个关注点:
1.如何从can信号名获取到can信号的ID长度以及信号的起始位,并将信号值按照⼀定的规则填写进去。
2.由于FCAN进⾏额checksum校验和activecount的规则,这部分算法使⽤C/C++最好,所以设计到python程序调⽤C/C++代码(也就是这篇⽂章)
1.如何⽤python调⽤C++代码:
这个是python官⽅库的cytpes模块的介绍,可以关注⼀下“Fundamental data types”
()
这个提供了⼀个简单的例⼦调⽤C语⾔代码
()
这个python调⽤C++指针和指针数组的调⽤(变量⽐较乱,要好好看⼀下才能看出来)
()
这个python调⽤C代码,传⼊⼀个数组给函数,因为传进去的实质是指针,作为参数的数组内容会改变,两个例⼦
()
()
2.编译C/C++⽣成动态库
这个是如何创建C++动态库⼯程的⽅法
()
这个是如何⽣成C++动态库的⽅法
32bit:直接⽤你的C++编译器32位的即可
64bit:使⽤mingw-w64编译器(如果没有请看第3条)
⽆论32bit或者是64bit,⽣成动态库⽅法如下:
cd到你的动态库⼯程⾥⾯使⽤编译命令如下
“gcc -shared -o yourDynamicLibNmae.dll yourSourceFileName.cpp”
最后⽣成的“yourDynamicLibNmae.dll”⽂件即为所求
3.Python和C的编译器要保持⼀致,要不都是64bit的,要不都是32bit的
这个是windows下安装mingw-w64的离线安装包,安装完毕请重启电脑
()
4.为了⽅便使⽤者,不必要每个⼈都安装python环境,可以将程序打包成exe
()
1> 安装打包库
pip install pyinstaller
2> 在python程序对应的路径打开命令⾏
python获取数组长度pyinstaller -F yourEnterFile.py
对应⽣成的exe在同路径下的dist⽂件夹⾥⾯,名字为
出现这个现象即打包成功
3> 本程序因为涉及到dll,所以对应的dll也要拷贝在exe的⽬录⾥⾯
双击

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。