c++调用 c#的dll



  1 用c#输出dll (以vs2012为例)

   (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#的dll)