c# python 混合 编程_C++与C#混合编程

最近需要利用C++和C#混合编程,然后就写了一个C#调用C++生成的DLL的DEMO。困扰我好久的就是C#中string类型在C++里面怎么表达,现在把C++生成DLL供C#调用的流程写出来。

1、打开VS创建C++项目"C++_CScharp_DLL"

点击确定之后接着点击下一步:

然后选择应用程序和附加选项:

点击完成,C++的项目就新建好了。

2、添加代码文件

右键项目,添加类,如下图所示:

添加类之后会打开添加文件对话框,点击添加即可,如下图所示:

点击确定之后进去下一个对话框,填写文件名Function,如下图所示:

添加好后会生成h文件和cpp文件,如下图所示:

Function.h文件代码如下:

#pragma once

#include

public ref class Function

{

public:

Function(void);

~Function(void);

int menber;

int menberFuncAdd(int a,int b);

System::String^ say(System::String^ str);

};

Function.cpp文件代码如下:

#include "Function.h"

Function::Function(void)

{

}

Function::~Function(void)

{

}

int Function::menberFuncAdd(int a,int b)

{

return a+b;

}

System::String^ Function::say(System::String^ str)

{

return str;

}

填写完后Function.h文件会报错,错误类型如下:

这里需要在C++项目里面设置,让动态库受到公共语言运行时的支持。如下图所示:

打开项目属性

修改完成后点击项目右键生成DLL,看是否报错,成功结果如下图:

3、添加测试程序:

在该解决方案中添加测试程序:

添加一个C#控制台测试程序:

添加完后设为启动项:

添加引用:

将C++项目添加到C#的项目中:

4、编写测试代码

Program.cs文件代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Test

{

class Program

{

static void Main(string[] args)

{

Function fun = new Function();

Console.WriteLine(fun.menberFuncAdd(1, 2));

Console.WriteLine(fun.say("Hello World"));

Console.ReadKey();

}

}

}

现在就可以点击调试按钮调试了,调试结果如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值