C++写dll文件用C#调用

来源:互联网 发布:java复试主要干什么 编辑:程序博客网 时间:2024/06/05 16:20

创建项目:
项目为win32项目,注意不是控制台,然后在设置处选上DLL并勾上“导出项目”,见下图
这里写图片描述
这里写图片描述
开始写c++:
把和项目同名的.h文件和.cpp文件清空,添加如下代码:

//在头文件中添加#ifdef WIN32PROJECT1_EXPORTS#define WIN32PROJECT1_API __declspec(dllexport)#else#define WIN32PROJECT1_API __declspec(dllimport)#endifextern "C" WIN32PROJECT1_API void _stdcall Add(int a,int b);//在源文件中添加#include "stdafx.h"#include "Win32Project1.h"#include<iostream>WIN32PROJECT1_API void _stdcall Add(int a,int b){    std::cout << a + b << std::endl;}

这里写图片描述
这里写图片描述
然后再项目属性中再设置一下编译为C++代码
这里写图片描述
最后生成一下就可以了。
我用的是win10,在文件管理器中看不到生成的dll文件,但完全可以根据路径调用
所使用的代码如下:

namespace csharp调用Cppdll{    class Program    {        [DllImport(@"C:\Users\chengk\Documents\Visual Studio 2015\Projects\Win32Project1\Debug\Win32Project1.dll", EntryPoint = "Add")]        extern static void Add(int a,int b);        static void Main(string[] args)        {            Add(2, 3);        }    }}

运行图:
这里写图片描述

0 0
原创粉丝点击