ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VS动态库的跨平台编译调用

2021-12-16 12:02:49  阅读:180  来源: 互联网

标签:index dll 编译 跨平台 VS result each path


简述: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)

标签:index,dll,编译,跨平台,VS,result,each,path
来源: https://blog.csdn.net/qq_37806107/article/details/121971192

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有