概述:对于一个经常写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");

}

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++的,有问题的,还请提出来,如确实如此,本人乐意接受。

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: