概述:对于一个经常写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<stdio.h>
void sayHello();

 然后Hellolib.cpp在重写这个方法。
// Hellolib.cpp : 定义静态库的函数。
//
#include "pch.h"
#include "framework.h"
#include "hello.h"
// TODO: 这是一个库函数示例
void sayHello()
{printf("Hello World");
}
- 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)
#endifextern "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++的,有问题的,还请提出来,如确实如此,本人乐意接受。