c++调用 c#的dll

以vs2012为例

1 用c#输出dll

   (1)打开vs2012

   (2)文件->新建->项目->c#->类库

   (3)输入代码

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


namespace ClassLibrary1
{
    public class Class1
    {
        public void ShowMessage()
        {
            Console.WriteLine("成功调用了dll");
            Console.ReadLine();
        }

        public void ShowMessageBox()
        {
            MessageBox.Show("调用了Dll", "调用",
            MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

        public int ShowArr(double[] a,int n)
        {
            for (int i = 0; i <= n; i++)
            {
                Console.WriteLine("a[{0}]={1}\n", i, a[i]);
            }
            return 0;
        }
    }
}


   (4)生成(B)->生成 ...(U)

   (5)产生了一个dll文件

   (6)新建一个c++项目,项目属性中 将 公共语言运行支持 选为 公共运行时支持(/clr)

   (7)VC++目录中 将dll文件所在目录 添加到 可执行文件目录 包含目录 引用目录 库目录

   (8)在VC++中写入代码

// ConsoleApplicationdll.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#using "ClassLibrary1.dll"
using namespace ClassLibrary1;

int _tmain(int argc, _TCHAR* argv[])
{
	Class1 ^c=gcnew Class1();
	cli::array<double,1>^a=gcnew cli::array<double>(5);
	for(int i=0;i<5;i++){
		a[i]=i+0.1;
	}
	int n=4;
	//c->ShowMessage();
	c->ShowMessageBox();
	c->ShowArr(a,n);
	return 0;
}


你可能感兴趣的:(c++调用 c#的dll)