• 使用Visual Studio 2022 创建lib和dll并使用


    对于一个经常写javaWeb的人来说,使用Visual Studio似乎没什么必要,但是对于使用ffi的人来说,使用c或c++编译器,似乎是必不可少的,下面我将讲述如何用Visual Studio 2022 来创建lib和dll,并使用。

    静态库的创建并使用

    首先打开Visual Studio 2022,点击创建新项目。

    选择静态库,然后点击下一步。

    点击创建。

    Visual Studio 2022会自动生成以下代码:

    然后打开项目属性,看一下配置是不是对的,一般来说都是对的。

    看看是不是lib。

    接下来就是写代码生成lib并测试一下:
    1. 编写代码:
    比如说,我就想编写一个输出hello World的代码,那该如何编写呢?
    首先在头文件中,创建一个hello.h的文件

    然后在头文件中,定义一个sayHello的方法。

    #include
    void sayHello();
    


    然后Hellolib.cpp在重写这个方法。

    // Hellolib.cpp : 定义静态库的函数。
    //
    #include "pch.h"
    #include "framework.h"
    #include "hello.h"
    // TODO: 这是一个库函数示例
    void sayHello()
    {
    	printf("Hello World");
    }
    
    1. Visual Studio自动生成lib
      右键点击这个Hellolib

      点击生成,就行了。

      生成成功:

    3.如何使用:
    先说一下,生成的lib的位置,就是在上一级的x64的debug文件夹里面。

    在这里面新建一个空项目,用于测试lib的,我这里叫它testHello

    在testHello里面新建两个文件夹,一个叫include,用来放.h的头文件的,一个叫lib,用来放lib包的。
    将我们生成的那个lib放进去,还有之前定义的.h文件也放到include文件里面。
    然后右击testHello,打开属性。

    然后开始调整:
    配置lib


    一般来说,不创建源文件,它不会有c/c++编译器,那个选项
    然后创建一个test.cpp的源文件。

    创建源文件后,在设置一下。
    配置include文件

    我再说一遍,一定要先创建源文件,不然是没有c/c++的那个选项的。
    然后编写相应的代码。
    看这个时候,就已经出来了:

    编写测试代码:

    #include "hello.h"
    int main() {
    	sayHello();
    	return 0;
    }
    

    然后点击运行,就会报错。

    这个错误是因为在启动项目的时候,默认运行上一个项目了,我们将它改一下,就行了。
    右击解决方案,点击属性。

    把启动项目改一下,改成你要运行的那个项目就行了。

    运行结果:

    动态库的创建并使用

    然后就是搞dll文件,新建一个Hellodll项目。

    初始化,页面长这样。

    创建头文件

    #pragma once
    #include"pch.h"
    #ifdef MATHLIBRARY_EXPORTS
    #define MATHLIBRARY_API __declspec(dllexport)
    #else
    #define MATHLIBRARY_API __declspec(dllimport)
    #endif
    
    extern "C" MATHLIBRARY_API void sayHello();
    

    一样的步骤创建cpp实现

    点击HelloDll项目,右击生成。

    运行结果:

    查看生成dll的文件

    在这里面新建一个项目 testDll
    然后一样的处理,在testDll里面建立一个include文件夹和lib文件夹,include文件夹里面放头文件,lib文件夹里面放dll和lib



    然后设置一下include属性

    然后设置一下dll和lib



    然后编写代码:

    #include "Hello.h"
    int main()
    {
    	sayHello();
    	return 0;
    }
    


    然后配置一下运行的项目。

    点击运行,查看结果,会报错:

    然后,把这行#include"pch.h"代码删了

    然后运行,运行成功。

    由于本人不是主修c++的,有问题的,还请提出来,如确实如此,本人乐意接受。


    __EOF__

  • 本文作者: nanshaws
  • 本文链接: https://www.cnblogs.com/nanshaws/p/17898274.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    自动化办公01 smtplib 邮件⾃动发送
    Django自动生成docs接口文档
    简单介绍动态链接过程
    临近期末,这些题不来看看吗?(下)
    VSCode2022配置Python3.9.6教程
    【FPGA】FPGA实现UART串口通信回环
    关于 .NET 在不同操作系统中 IO 文件路径拼接方法,升级 .NET 7 后注意到的一个知识点
    【Paper】2022_离散时间多智能体系统编队-包围控制研究_李博凡
    【气动学】龙格库塔算法飞行器机动飞行质点弹道仿真(侧向和纵向)【含Matlab源码 4586期】
    Git基础
  • 原文地址:https://www.cnblogs.com/nanshaws/p/17898274.html