(C++实例)在VS中封装DLL并调用


前言

dll通常包含的是多个程序都能用到的代码和数据,在大多数情况下可以理解为对多个通用函数进行封装,所以生成dll的代码是没有main函数的,只有通用函数的声明和定义。


一、VS中生成DLL(包含.h和.cpp)

项目默认类型为*可执行文件(.exe)*,要将其改为*动态库(.dll)*
在这里插入图片描述
一般来说,最终生成版本选择Release,因为相比于Debug,生成的dll文件要小一点。

test.h代码如下:

#pragma once
#include<iostream>
using names
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个示例,展示如何在 Visual Studio 2019 创建 C++/CLI 项目并封装 VB.NET 的 API,然后在 .NET 使用它。 1. 创建 C++/CLI 项目 按照上面的步骤创建 C++/CLI 项目。假设您的 VB.NET API 代码如下: ```vb Namespace MyNamespace Public Class MyVBNETAPI Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer Return x + y End Function End Class End Namespace ``` 2. 添加 VB.NET 代码 将上面的 VB.NET 代码添加到您的 C++/CLI 项目。您可以在 Visual Studio 2019 使用“添加现有项”功能将其添加到项目。 3. 封装 VB.NET 代码 在 C++/CLI 项目,创建一个新的公共 ref 类,将 VB.NET 代码封装在其: ```cpp #pragma once #pragma managed(push, off) #include "MyVBNETAPI.h" using namespace System; using namespace MyNamespace; #pragma managed(pop) namespace MyCppCLIWrapper { public ref class MyCppCLIWrapperClass { private: MyVBNETAPI^ myVBNETAPI; public: MyCppCLIWrapperClass() { myVBNETAPI = gcnew MyVBNETAPI(); } int Add(int x, int y) { return myVBNETAPI->Add(x, y); } }; } ``` 在此示例,我们在 C++/CLI 类创建了一个私有成员变量 `myVBNETAPI`,并在构造函数实例化了 VB.NET 类。我们还创建了一个公共函数 `Add`,该函数将调用 VB.NET API 的 `Add` 函数。 4. 编译 C++/CLI 项目 编译 C++/CLI 项目,生成 DLL 文件。 5. 在 .NET 使用 C++/CLI 封装的 VB.NET API 在 .NET 项目,添加对 C++/CLI 项目生成的 DLL 文件的引用。然后,您可以使用以下代码在 .NET 调用封装的 VB.NET API: ```csharp using MyCppCLIWrapper; MyCppCLIWrapperClass myCppCLIWrapperClass = new MyCppCLIWrapperClass(); int result = myCppCLIWrapperClass.Add(2, 3); // result = 5 ``` 在此示例,我们创建了一个新的 `MyCppCLIWrapperClass` 对象,并调用的 `Add` 方法,将 2 和 3 作为参数传递。该方法将调用我们在 C++/CLI 类封装的 VB.NET API,并返回结果 5。 希望这个示例能够帮助您更好地理解如何在 Visual Studio 2019 创建 C++/CLI 项目并封装 VB.NET 的 API,然后在 .NET 使用它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想要躺平的一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值