一、用VS2005写一个 C 的类库的步骤:

(1)、建立一个空的Visual C++项目

(2)、这时候在项目中可以看见 三个空目录

选中 "源文件" 目录,然后点鼠标右键,在弹出菜单中选择“添加”--->"新建项" ,建立 main.c 项

(3)、在main.c 文件中输入如下代码(字符串)

#include <stdio.h>

int MyCDll(int a, int b)
{
return a+b;
}

(4)、建立 def文件

选中 "源文件" 目录,然后点鼠标右键,在弹出菜单中选择“添加”--->"新建项" ,建立 MyDll.def 项

(5)、在MyDll.def 文件中输入如下代码(字符串)

; MyDll.def : 声明 DLL 的模块参数。

LIBRARY       "MyCDll"

EXPORTS
     MyCDll @1
     ; 此处可以是显式导出

(6)、到这一步项目和代码都写好了,但是目前编译只是 exe可执行文件,我们要的是 Dll类库,所以不要着急:),选中 "MyDll" 目录,然后点鼠标右键,在弹出菜单中选择“属性”还需要做一下项目的属性设置,在“配置属性”的“常规”中,将“配置类型”改为“动态库(.dll)”即可。

好了,现在你可以去编译了。这时候会生成 MyDll.dll

二、用 C#来调用的示例

(1)、建立一个空的Visual C# 项目

(2)、这时候在项目中可以看见 一个窗体,在窗体上点鼠标右键,在弹出菜单中选择“查看代码”

在打开的代码文件中输入如下代码(字符串):

[DllImport(@"E:\C++\timetest\debug\MyDll.dll", CharSet = CharSet.Ansi, EntryPoint = "MyCDll", CallingConvention = CallingConvention.Cdecl)]
         public static extern int MyCDll(int a, int b);

(3)、现在对类库中函数的引用已经申明好了,然后在窗体上放一个按钮控件和一个文本框,我们来调用一下啊。

在按钮的OnClick事件中写如下字符串

int i = 0;
             i = MyCDll(1 , 2);

this.textBox1.Text = i.ToString();

注意:在使用dll的时候头文件中必须加上 using System.Runtime.InteropServices;

好了,现在按一下 ctrl + f5   来运行一下看看效果如何。

用VS2005写一个 C 的类库和用 C#来调用的示例的更多相关文章

  1. 写一个dup2功能相同的函数,不能调用 fcntl 函数,并且要有出错处理

    实现的时候用到系统原来的dup函数 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write my own dup2 function / ...

  2. 写一个dup2功能同样的函数,不能调用 fcntl 函数,而且要有出错处理

    实现的时候用到系统原来的dup函数 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write my own dup2 function / ...

  3. 一起写一个JSON解析器

    [本篇博文会介绍JSON解析的原理与实现,并一步一步写出来一个简单但实用的JSON解析器,项目地址:SimpleJSON.希望通过这篇博文,能让我们以后与JSON打交道时更加得心应手.由于个人水平有限 ...

  4. 写一个ajax程序就是如此简单

    写一个ajax程序就是如此简单 ajax介绍: 1:AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),指一种创建交互式网页应用的网页开发 ...

  5. 比最差的API(ETW)更差的API(LTTng)是如何炼成的, 谈如何写一个好的接口

    最近这几天在帮柠檬看她的APM系统要如何收集.Net运行时的各种事件, 这些事件包括线程开始, JIT执行, GC触发等等. .Net在windows上(NetFramework, CoreCLR)通 ...

  6. [AST实战]从零开始写一个wepy转VUE的工具

    为什么需要 wepy 转 VUE "转转二手"是我司用 wepy 开发的功能与 APP 相似度非常高的小程序,实现了大量的功能性页面,而新业务 H5 项目在开发过程中有时也经常需要 ...

  7. 让我手把手教你写一个强大、方便使用的 IOC 容器

    一.介绍 1.介绍 最近无聊,也没什么事做,没事做总是要给自己找点事情做吧,毕竟人的生活在与折腾.于是,决定自己手动写一个 IOC 的框架.我们知道在 NetCore 的版本里面已经内置了 IOC 容 ...

  8. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  9. 请写一个php函数,可以接受任意数量的参数

    请写一个php函数,可以接受任意数量的参数 这是一道面试题.怎么写这个函数呢? function fun(......) { } ----------------------------------- ...

随机推荐

  1. 爬虫技术实战 | WooYun知识库

    爬虫技术实战 | WooYun知识库 爬虫技术实战 大数据分析与机器学习领域Python兵器谱-大数据邦-微头条(wtoutiao.com) 大数据分析与机器学习领域Python兵器谱

  2. VShell破解版

    VShell破解版 VShell破解版

  3. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程 - VPS侦探

    Web服务器性能/压力测试工具http_load.webbench.ab.Siege使用教程 - VPS侦探 http://soft.vpser.net/test/http_load/http_loa ...

  4. 用java写随机出题

    import java.io.*; //输入函数包 public class hello{ public static void main(String args[]){ String s=" ...

  5. [转载]通过jQuery的attr修改onclick

    var js = "alert('B:' + this.id); return false;"; // creates a function from the "js&q ...

  6. c#基础语言编程-常用函数

    类型转换Convert Convert考虑数据意义的转换. Convert是一个加工.改造的过程.在使用Convert的转换过程中不会返回异常,当遇到类型转换的不知道的时候,用Convert找找. T ...

  7. SQL 按月统计(两种方式) 分类: SQL Server 2014-08-04 15:36 154人阅读 评论(0) 收藏

    (1)Convert 函数 select Convert ( VARCHAR(7),ComeDate,120) as Date ,Count(In_code) as 单数,Sum(SumTrueNum ...

  8. Spring MVC之messageConverters

    <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案.<mvc:annotation-dri ...

  9. linux操作系统cron详解

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  10. 【Android - 框架】之OkHttp的使用

    OkHttp是一个非常优秀的网络访问框架,当下非常火的Retrofit的底层就是使用OkHttp进行封装的.接下来介绍以下OkHttp的简单使用. 1.导入依赖 在Android Studio中,在M ...