在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
软件环境: VC6.0(当然其他版本的VC5也可以) 1.制作标准动态库 __declspec(dllexport) int __cdecl add(int, int);//这一句是声明动态库输出一个可供外不调用的函数原型. int add(int a,int b) {//实现这个函数 return a+b; } 以上简单3行代码,声明一个add的方法, 输入参数是两个int参数,返回这两个数之和. 保存为MyLib.c 然后执行编译命令. H:\XSchool\C#-School\HowTo>cl /LD MyLib.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. MyLib.c Microsoft (R) Incremental Linker Version 6.00.8447 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. /out:MyLib.dll /dll /implib:MyLib.lib MyLib.obj Creating library MyLib.lib and object MyLib.exp 确信有以上输出, 说明编译成功生成了动态库. 2.编写C-Sharp程序调用该动态库 using System; using System.Runtime.InteropServices;//这是用到DllImport时候要引入的包 public class InvokeDll { [DllImport("MyLib.dll", CharSet=CharSet.Auto)] static extern int add(int a,int b);//声明外部的标准动态库, 跟Win32API是一样的. public static void Main() { Console.WriteLine(add(10,30)); } } 保存为InvokeDll.cs文件, 与MyLib.dll置于同一目录, 编译该文件. H:\XSchool\C#-School\HowTo>csc invokedll.cs 将生成Invokedll.exe, 可以执行该文件. |
请发表评论