动态调用链接库(dll) 续
20141118
最近一周做了一个关于仓库管理,拣货任务分配的模块,其中涉及到刷卡自动打印领取任务的功能点。
技术点:
C#调用C++、delphi的动态链接库。动态链接库的调用方法不同。效果也不相同。
DLL位置:执行程序根目录下面
例:
第一种:
[DllImport("shuipiao1.dll", EntryPoint = "checkticket", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
第二种:
[DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)]
第三种:
[DllImport("MifsDLL.dll", CharSet = CharSet.Ansi, EntryPoint = "mifs_anticoll", CallingConvention = CallingConvention.Cdecl)]
实际案例:
#region 调用dll接口方法
// 打开串口 OpenComm(char *commPort,DWORD baud) [DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)] // [DllImport("MifsDLL.dll", EntryPoint = "OpenComm", SetLastError = true,
//CharSet = CharSet.Auto, ExactSpelling = false,
//CallingConvention = CallingConvention.StdCall)] //打开串口
public static extern Int16 OpenComm(string port, long baud); //装载密钥 WINAPI mifs_load_key(uchar _Mode, uchar _SecNr, uchar *Key)
[DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)]
//打开串口
public static extern Int16 mifs_load_key(uint Mode, uint SecNr, byte[] Key); [DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)]
//mifs_request_2 寻卡
public static extern Int16 mifs_request_2(long mode); [DllImport("MifsDLL.dll", CharSet = CharSet.Ansi, EntryPoint = "mifs_anticoll", CallingConvention = CallingConvention.Cdecl)]
public static extern Int16 mifs_anticoll(uint Bcnt, byte[] port); //mifs_select(uchar *_Snr) [DllImport("MifsDLL.dll", CharSet = CharSet.Ansi, EntryPoint = "mifs_select", CallingConvention = CallingConvention.Cdecl)]
//选卡
public static extern Int16 mifs_select(byte[] port); //mifs_authentication(uchar auth_mode,uchar *snr,uchar key_sector)
[DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)]
//认证秘钥
public static extern Int16 mifs_authentication(uint mode, byte[] Snr, uint Key); //读卡数据 mifs_read(uchar _Adr, uchar *_Data) 出口函数16byte [DllImport("MifsDLL.dll", CharSet = CharSet.Ansi, EntryPoint = "mifs_read", CallingConvention = CallingConvention.Cdecl)]
public static extern Int16 mifs_read(uint Adr, byte[] Data); //int WINAPI mifs_write(uchar _Adr, uchar *_Data) 写员工号
[DllImport("MifsDLL.dll", CharSet = CharSet.Ansi)]
public static extern Int16 mifs_write(uint Adr, byte[] Data); // 蜂鸣 mifs_Buzzer(uchar bb)
[DllImport("MifsDLL.dll", EntryPoint = "mifs_Buzzer", SetLastError = true,
CharSet = CharSet.Auto, ExactSpelling = false,
CallingConvention = CallingConvention.StdCall)]
public static extern void mifs_Buzzer(int bb);
#endregion
动态调用链接库(dll) 续的更多相关文章
- C#程序实现动态调用DLL的研究(转)
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- C#程序实现动态调用DLL的研究[转]
摘 要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...
- C#程序实现动态调用DLL的研究
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- DLL、lib等链接库文件的使用
由于遇见过多次动态链接库的使用,自己也写过DLL,每次都要费好大劲去配置,现在就简单的总结一下,争取以后少走弯路! 一般都会有三个文件: .h 头文件 .lib 静态链接库 .dll 动态链接库 ...
- vs2010下C++调用lib或dll文件
注: DLL:表示链接库,包含dll,lib文件: dll: 表示my.dll文件 lib: 表示my.lib文件 C++ 调用.lib的方法: 一: 隐式的加载时链接,有三种方法 1 设置工程的 ...
- 如何动态调用 C 函数
JSPatch 支持了动态调用 C 函数,无需在编译前桥接每个要调用的 C 函数,只需要在 JS 里调用前声明下这个函数,就可以直接调用: require('JPEngine').addExtensi ...
- 在C#环境中动态调用IronPython脚本(一)
本文讲述用C#调用Ironpython运行环境,解析并运行动态pyhton脚本.这种情况应用在那些需要滞后规定行为的场合,例如,动态计算项(计算引擎),用户可以自定义计算内容.计算公式等. 本文的代码 ...
- 在VS2015中用C++编写可被其它语言调用的动态库DLL
转自:http://blog.csdn.net/songyi160/article/details/50754705 VS2015用C++创建动态库DLL步骤如下: (1)启动VS2015>文件 ...
- C++与C#有关对库(动态库dll,静态库.lib)文件的调用
1 动态库的相互调用 1.1 C#调用C++ dll步骤(只能导出方法): 1. c++建立空项目->源文件文件夹中添加cpp文件和函数 2. c++属性设置中,配置类型设置为动态库dll,公共 ...
随机推荐
- day2-搭建hdfs分布式集群
1.搭建hdfs分布式集群 4.1 hdfs集群组成结构: 4.2 安装hdfs集群的具体步骤: 一.首先需要准备N台linux服务器 学习阶段,用虚拟机即可! 先准备4台虚拟机:1个namenode ...
- android:“新版飞机大战”源码开源啦!
今天10.24,为了纪念程序猿的节日,把之前写过的一个"飞机大战"的一个源码开源了. 源码地址:https://github.com/nuptboyzhb/newplanegame ...
- 【C++/数据结构】单链表的基本操作
#pragma once #ifndef _CLIST_H_ #define _CLIST_H_ #include <iostream> #include <assert.h> ...
- C语言之函数调用17—递归法之中的一个般函数的调用(2)
//递归法 /* ================================================================== 题目:求F(60),当中F(n)定义例如以下: ...
- Android lollipop 更新问题
非常多朋友都说lollipop出来想试用一下,结果在网官下载的android studio 都是20版本号,也没有看见更新到android 5.0. 我也在网上狂了一下,收集到一个代理地址目測能够用, ...
- iOS CMSampleBuffer deep copy
extension CVPixelBuffer { func copy() -> CVPixelBuffer { precondition(CFGetTypeID(self) == CVPixe ...
- 改造系统alert
/************************************************************************* * 改造系统alert * param str 传 ...
- http访问方式
package com.m.billingplug.util; import java.io.IOException; import java.net.UnknownHostException; im ...
- zoj 3822(概率dp)
ZOJ Problem Set - 3822 Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Ju ...
- 蓝书2.2 KMP算法
T1 Radio Transmission bzoj 1355 题目大意: 一个字符串,它是由某个字符串不断自我连接形成的 但是这个字符串是不确定的,现在只想知道它的最短长度是多少 思路: kmp 输 ...