简述:VS动态库的跨平台调用是说例如我们在vs2019编译的动态库,在vs2013或者vs2017等其他版本编译调用。
1.动态库编译:
参考如下作者的博客:
如何设计C++接口类 - 简书基于C++语言开发的库,需要提供给第三方来调用,就必然会涉及到如何设计接口类。一般来说,有两种方法设计接口类,第一种是PIMP方法,即Pointer to Implement...https://www.jianshu.com/p/2f870b7a34342.其他平台的测试
1)VS中设置参数:
设置动态库的".h"路径
设置lib路径:
2)将编译好的“.dll”放在与编译后的.exe相同路径下:
3)vs2019编译的库,在vs2019中进行测试编译时会看到调用的.dll库
简单直接暴力的方法是直接将涉及的所有.dll放在“2)”步骤中相同的位置;
但是实际:vs2019编译时使用的是:vcruntime140.dll, vcruntime140_1.dll,?vcruntime140_app.dll, vcruntime140_1_app.dll,在vs2017和win10平台上面测试时可以编译调用。
4)将编译过程中的复制到txt文中,使用代码直接保存涉及到的.dll到其他文件夹下
?python:文件转存代码
import os import re import shutil
path=r'C:\Users\OUR\Desktop\dd.txt' destination_path=r'C:\Users\OUR\Desktop\destination'
if not os.path.exists(destination_file): ????????os.makedirs(destination_file) with open(path,'r',encoding='utf-8') as f: ????????result=f.readlines()
for each in result: ????????each=(each.strip()) ????????if "已加载" in each: ????????????????each_result=re.findall(r"已加载.*?”",each) ????????????????start_index=each_result[0].index('“') ????????????????end_index=each_result[0].index('”') ????????????????dll_path=each_result[0][start_index+1:end_index] ????????????????print(dll_path) ????????????????print(type(dll_path)) ????????????????shutil.copy2(dll_path,destination_path)
|