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

简介: 本文介绍了如何在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<stdio.h>
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

点击生成,就行了。

[![](https://i-blog.csdnimg.cn/blog_migrate/ad91fb2820947c958b48884871da2779.png)](https://img2023.cnblogs.com/blog/2916233/202312/2916233-20231213091841352-1649873374.png)


生成成功:

[![](https://i-blog.csdnimg.cn/blog_migrate/b763b4909c4850dd7bd3bb0c3d78e853.png)](https://img2023.cnblogs.com/blog/2916233/202312/2916233-20231213091922296-1951391437.png)

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

目录
相关文章
|
7月前
|
IDE API 开发工具
visual studio 生成dll文件以及修改输出dll文件名称操作
visual studio 生成dll文件以及修改输出dll文件名称操作
298 0
|
算法 C++
解决方案-Visual Studio生成库(DLL&LIB)以及如何调用
解决方案-Visual Studio生成库(DLL&LIB)以及如何调用
541 0
|
安全 IDE 小程序
QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)
QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)
254 0
QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)
|
Java Android开发 C++
visual studio 2015生成64位DLL文件
新建一个visual C ++  -&gt;win32项目 点击生成-&gt;配置管理器新建一个64位debug位平台 hello.cpp程序代码如下: #include "stdafx.h" #include "jni.h" #include "com_magc_jni_HelloWorld.h" JNIEXPORT void JNICALL Java_com_magc_jni_H
3518 0
Visual Studio 2010/2013 查看DLL接口(函数)
1. “应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口2. dumpbin /exports c:\...\**.dll     (文件完整路径)
1426 0
|
C++ Windows
Visual Studio 2010 - Visual C++ 确定要重新分发的 DLL
若要确定必须与应用程序一起重新发布的 DLL,请收集应用程序所依赖的 DLL 列表。 收集该列表的一种方法是运行理解 Visual C++ 应用程序的依赖项中介绍的依赖项查看器 (depends.exe)。
1240 0
|
7月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
733 1
|
7月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
707 0