C#调用dll 小例子

无论调用win32.dll还是mfc.dll基本过程都是一样的

下面以CALLmfcdll的C#项目调用VC++编写的MFCDLL项目为例

1、在MFCDLL.h中加上

extern "C" __declspec(dllexport) int add(int x,int y);//导出函数

2、在MFCDLL.cpp中加上

extern "C" __declspec(dllexport) int add(int x,int y)
{
//focus=100;
return x+y;

}

3、更改dll的输出目录

MFCDLL属性页-->配置属性-->常规-->输出目录,编辑为CALLmfcdll的deug路径,这样点击生成MFCDLL,在debug文件夹下就有MFCDLL.dll、MFCDLL.lib等文件了

4、在CALLmfcdll中新建一个类专门用于调用dll,如CallDllFunction.cs

在CallDllFunction.cs中加上

using System.Runtime.InteropServices;

......

......

//导出函数
[DllImport("MFCDLL.dll", EntryPoint = "add", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int add(int x, int y);

5、最后就可以通过 类似“CallDllFunction.add(10, 20);”的形式调用dll中的方法了

时间: 2024-10-13 11:41:46

C#调用dll 小例子的相关文章

关于析构函数和构造函数何时调用的小例子

详情见C++ PrimerPlus第十章 省略其他函数,将构造函数和析构函数写出来 Stock::Stock() //default constructor{ std::cout<<"Default constructor called\n"; company="no name"; shares=0; share_val=0; total_val=0;} Stock::Stock(const std::string&co,long n,doubl

有关this,4种调用模式小例子

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>testFun1_this</title> 6 </head> 7 <body> 8 9 </body> 10 </html> 11 <script type="text/j

windows下,python调用dll例子,展示如何传递字节码流参数到dll接口

工作上需要用python调用dll解析码流输出到文件,如何调用dll很多博客都有描述,请参考如下blog: 如何调用请参考: http://blog.csdn.net/lf8289/article/details/2322550 WinDLL和CDLL的选择,请参考: http://blog.csdn.net/jiangxuchen/article/details/8741613 传递自定义的结构,请参考: http://www.jb51.net/article/52513.htm 但是如何将一

lib和dll的例子

.dll和.lib的区别 lib是静态库,dll一般是动态链接库(也有可能是别的)比如要编译个exe,lib在编译的时候就会被编译到exe里,作为程序的一部分而dll是不被编译进去,是运行的时候才调入的(可能是exe刚运行就调入,也可能运行了一半才调入)用法,lib需要个.lib文件和一个.h文件,程序正常使用.h的函数,在链接选项里加入.lib文件就okdll用法有2种,一种是 .h + .lib + .dll的,用法和前面一样,中间的lib是个中转,运行的时候会调用dll还有就是直接用dll

COM2 --- 小例子

在COM1 的小例子中,,我们大概知道什么是组件类 ,什么是接口了.这小节呢,我们来实现一下由一个组件类去实现两个接口的过程. 新建项目: 我们的 解决方案的 名字是 ComDemoCode ,项目名字是 MathToolKit  这表示 我们的 项目 自动 生成的 DLL  的名字就是 MathToolKit(数学工具包). 我们的继承关系 有必要 给大家 先 列出来,让大家 看看 在这里面,IPrimerMath接口 提供 + - * / % 五个基本运算方法,IAdvanceMath接口提

Spring.Net在ASP.NET Mvc里使用的一个小例子

就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里搜索spring.web.mvc,它会自动下载SpringNet的引用包. 安装完成之后你的项目会多三个引用,项目目录../packages文件夹下面也会多出这三个文件夹里面是SpringNet的文件. 2.写代码例子 很简单的例子.定义一个接口,一个对于接口的实现类. namespace MvcA

COM1 --- 小例子

测试环境: VS2008 + SP1 补丁     XP 32位系统 1.启动VS2008,新建项目,如图 2.再次新建项目,如图 需要注意的就是  在 Solution 那里 选择 Add to Solution ,同时,上面的 Location 会自动定位到当前的解决方案里.这个项目,直接点击Finish 结束就行了. 3.将视图切换到文件视图(View 菜单中的 Solution Explorer) ,如图 可以看到这里面有 类似 文件夹的 东东,,它们是 Filter  就是将某一些相同

在C++中调用DLL中的函数 (3)

1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等,它们都以源代码的形式发布.由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”.“白盒复用”的缺点比较多,总结起来有4点. 暴露了源代码:多份拷贝,造成存储浪费: 容易与程序员的“普通”代码发生命名冲突: 更新功能模块比较困难,不利于问题的模块化实现: 实际上,以上4点概

LoadRunner 调用dll方法

本文主要介绍简单DLL的编写方法及在LoadRunner中局部调用与全局调用DLL方法. 1.动态链接库的编写 在Visual C++6.0开发环境下,打开FileNewProject选项,可以选择Win32 Dynamic-Link Library建立一个空的DLL工程. DLL必须有一个入口点,这就象C语言MAIN函数一样.在Non-MFC DLL中DllMain是一个缺省的入口函数,你不需要编写自己的DLL入口函数,用这个缺省的入口函数就能使动态链接库被调用时得到正确的初始化.如果应用程序