• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

利用C++创建DLL并C#调用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

日期:2018年11月26日

环境:window 10,VS2015 community

一、利用C++创建DLL

  1.新建项目;

  

  

  2.打开CreateDLL.cpp文件,并输入测试代码

  

 1 #include "stdafx.h"
 2 
 3 int __stdcall Add(int a, int b)
 4 {
 5     return a + b;
 6 }
 7 
 8 int __stdcall Sub(int a, int b)
 9 {
10     return a - b;
11 }
DLL Test Code

  3.给工程添加一个.def文件,并在该文件中插入以下代码;

1 LIBRARY CreateDLL
2 EXPORTS
3 Add @1,
4 Sub @2,
def Code

  注意这里的CreateDLL是工程名如果不同则应用程序连接库时会发生连接错误!

  其中LIBRARY语句说明该def文件是属于相应DLL的,EXPORTS语句下列出要导出的函数名称。我们可以在.def文件中的导出函数后加 @n,如Add@1,Sub@2,表示要导出的函数顺序号,在进行显式连时可以用到它。该DLL编译成功后,打开工程中的Debug目录,同样也会看到 CreateDLL.dll和CreateDLL.lib文件。

二、使用C#调用DLL

  1.在新建的C#工程中插入以下代码;

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Runtime.InteropServices;
 7 
 8 namespace AcmeCollections
 9 {
10     class Program
11     {
12         [DllImport(@"C:\Users\xxxxx\Desktop\study\CreateDLL\Debug\CreateDLL.dll")]//DLL的位置
13         public static extern int Add(int a, int b);
14 
15         [DllImport(@"C:\Users\xxxxx\Desktop\study\CreateDLL\Debug\CreateDLL.dll")]
16         public static extern int Sub(int a, int b);
17         static void Main(string[] args)
18         {
19             long ans;
20             string str;
21             
22             ans = Add(9, 7);
23             str = Convert.ToString(ans);
24             Console.WriteLine(str);
25             ans = Sub(9, 7);
26             str = Convert.ToString(ans);
27             Console.WriteLine(str);
28             Console.ReadLine();
29         }
30     }
C# Main Code

  2.运行结果;

  

 

参考链接:http://www.cnblogs.com/daocaoren/archive/2012/05/30/2526495.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap