VC.dll相关及其C#交互
来源:互联网 发布:单端口环路检测 编辑:程序博客网 时间:2024/04/29 18:47
方法步骤:
1.新建工程:
如果需要MFC的支持,可以选择MFC AppWizard(dll)工程类型,如果不需要,可以选择Win32(dll).
2.编写内部代码:
该部分过程与建立一般的exe文件大同小异,在此不再赘述。
3.编写关键代码:
在关键的头文件中添加dll库导出接口:其中导出类的声明之前要加注宏定义AFX_EXT_CLASS;导出函数则在生命之前添加extern "C" __declspec(dllexport)的字样。
4.引入相应的Demo程序
Demo程序在引用dll时分为静态和动态两种:
1>静态加载:
将相应的dll文件放入Demo.exe的目录下,将dll编译生成的lib文件和包含有导出接口的关键头文件放入程序的编译目录下。
而后在用到库函数的地方#include关键头文件,在Project---->setting---->link中添加相应的lib文件名称。执行即可。
2>动态加载:
VC中.dll文件的动态加载方法:
另附:
C#中动态调用.dll文件的方法:
mi.Invoke(obj,params[]);//根据参数直线方法,返回值就是原方法的返回值
5.注意:如果想实现该dll文件的跨平台调用,比如C#调用,则其类型必须是Win32以及MFC中的静态dll,动态dll是不可调用的。
以下为C#调用非托管.dll方法:
引入相应的命名空间:
using System.Runtime.InteropServices;
引入dll文件并声明导出函数:
[DllImport("name.dll")]
private static extern style name(/*函数参数表*/);
注意:引入的dll文件必须是VC中的Win32dll或者MFC静态dll,MFC规则dll和MFC扩展dll均是不可用的!!; 除此之外,MFC的三种dll中的前两种只能用于导出全局方法,而第三种只能用于导出类。
随后的调用便和C#调用托管dll文件相同。
直接引入非托管的dll文件,之所以会找不到程序的入口,就是因为缺少了声明导出函数这至为关键的一步。
- VC.dll相关及其C#交互
- c#调试VC dll
- VC Export DLL 相关知识
- VC调用C#的DLL
- VC 调用C# DLL总结
- vc mfc 调用C# dll
- c#基础知识4:dll相关
- c#调用C++DLL相关
- 关于vc下dll的相关知识
- VC控件DateTimePicker使用方法及其相关
- VC控件DateTimePicker使用方法及其相关
- VC控件DateTimePicker使用方法及其相关
- D与C#的交互:C#调用D的dll
- C#调用VC dll提供的接口
- vc 下调用C#的dll步骤
- VC++编写DLL供C#使用
- VC调用C#的COM组件(DLL)
- vc调用c#写的dll
- xp常见命令集
- 用户sa登录失败,该用户与可信sql server连接无关联
- 用R进行描述性统计
- OAUTH协议简介
- 项目工程化思想
- VC.dll相关及其C#交互
- Linux/Unix Space
- 一个简单的多叉树C++实现
- SQL*Loader疑难问题
- SQL角色与权限
- 设计模式之观察者模式
- Sniffer VS Internet
- c++输入输出控制
- JXTA源码分析