首页 > 学院 > 开发设计 > 正文

C-Sharp调用标准动态库(记录)

2019-11-17 04:27:22
字体:
来源:转载
供稿:网友

  C#调用Win32API
  软件环境: 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. www.devdao.com 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, 可以执行该文件.
引用
以上是C-Sharp调用标准动态库的全过程, 本来觉得很简单的东西, 一直都没有想写, 碰巧今日遇一朋友问及此事, 就顺便写了下来. 有什么问题可以联系zlyperson@163.net


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表