C++调用C#类库2

前文

https://blog.csdn.net/github_38485912/article/details/114591017

前言

为了测试c++调用的c#类库需要调用其他c#类库的情况(也不知道是不是应该这样形容,如下图,目的是调用CameraControl.Devices,但是其需要调用下面两个库)

对前一个项目进行一些修改

c#部分

1. 解决方案--添加--新建项目--类库( .NET Framework)
添加CSharpTestDll2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTestDll2
{
    public class TestClass2
    {
        public int fnAdd(int iAdd1, int iAdd2)
        {

            return iAdd1 + iAdd2;
        }
    }
}

2. 修改CSharpTestDll代码


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CSharpTestDll2;
namespace CSharpTestDll
{
    public class TestClass
    {
        public int fnMul(int iMul1, int iMul2)
        {
            TestClass2 test = new TestClass2();

            int t = 0;
            int i;
            for(i=0;i< iMul2;i++)
            {
                t = test.fnAdd(t, iMul1);
            }

            return t;
        }
    }
}

CSharpTestDll项目--生成依赖项--项目依赖项--CSharpTestDll2(不知道是不是需要)

CSharpTestDll项目--引用--添加引用CSharpTestDll2

3. 解决方案--生成解决方案

两个项目会生成两个dll文件,都在启动项目CSharpTestDll编译生成的bin文件夹下

c++部分

修改c++代码


#include <Windows.h>
#include <tchar.h>
#include <iostream>

#using "..\\Debug\\CSharpTestDll.dll" 

using namespace CSharpTestDll;
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	TestClass ^ c = gcnew TestClass();

	cout << c->fnMul(2, 3) << endl;

	getchar();
	return 0;
}

将c#生成的两个dll放到和c++编译生成的exe同一路径下

不需要添加引用,直接运行就行

 

项目代码:

https://download.csdn.net/download/github_38485912/15707218

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值