现有一公司已开发的DLL,另外还带有“.h”和“.lib”二个文件,不知是何种语言开发。“.h”文件内容如下:
============================================================================
#ifndef MNP_H
#define MNP_H#ifdef __cplusplus
extern "C" {
#endifBOOL __stdcall MnpCloseComm(void); //关闭串口
//Declare Function MnpCloseComm Lib "mnp" () As Longint __stdcall MnpInitComm(int nComm,int nSpeed); //打开串口 return 0 正确
//Declare Function MnpInitComm Lib "mnp" (ByVal variable As Long,ByVal variable As Long) As LongBOOL __stdcall MnpBroadCast(BYTE byCode); //广播
//Declare Function MnpBroadCast Lib "mnp" (ByVal variable As Byte) As Longint __stdcall MnpYc(int nAdress ,DOUBLE dValue,BYTE nPoint,BYTE byFlag); //遥测
//Declare Function MnpYc Lib "mnp" (ByVal variable As Long,ByVal variable As Double,ByVal variable As Byte,ByVal variable As Byte) As LongBOOL __stdcall MnpYx(BYTE byBox,BYTE byLight,BYTE byCode); //遥信
//Declare Function MnpYx Lib "mnp" (ByVal variable As Byte,ByVal variable As Byte,ByVal variable As Byte) As LongBOOL __stdcall MnpDimmer(BYTE nLight); //调光
//Declare Function MnpDimmer Lib "mnp" (ByVal variable As Byte) As Long#ifdef __cplusplus
}
#endif#endif===============================================================================
帮助文件中说明如下(部分):
此软件驱动采用动态连接库的形式,方便用户自己编写与模拟屏的接口,用户的编程语言可以为C,C++,Vb等。
使用方法:对于Win9x将动态连接库mnp.dll拷入system
对于WinNt/2000将动态连接库mnp.dll拷入system32
首先要调用初始化串口函数MnpInitComm,在程序退出时调用关闭串口函数MnpCloseComm。
此连接库由5个函数组成。
1. 初始化串口:
c函数原型 int __stdcall MnpInitComm(int nComm,int nSpeed);
vb函数原型 Declare Function MnpInitComm Lib "mnp" (ByVal variable As Long,ByVal variable As Long) As Long
参数:int nComm 串口号,从1开始
int nSpeed 波特率,有效值为1200、2400、4800、9600
返回值: 0 正确
1 CreateFile 错误
2 BuildCommDCB 错误
3 SetCommState 错误
4 SetCommTimeouts 错误
-------------------------------------------------------现要在程序中调用该DLL,在DELPHI中应该如何做,请高手详细写出步骤。公司有急用,谢谢!!!!!
============================================================================
#ifndef MNP_H
#define MNP_H#ifdef __cplusplus
extern "C" {
#endifBOOL __stdcall MnpCloseComm(void); //关闭串口
//Declare Function MnpCloseComm Lib "mnp" () As Longint __stdcall MnpInitComm(int nComm,int nSpeed); //打开串口 return 0 正确
//Declare Function MnpInitComm Lib "mnp" (ByVal variable As Long,ByVal variable As Long) As LongBOOL __stdcall MnpBroadCast(BYTE byCode); //广播
//Declare Function MnpBroadCast Lib "mnp" (ByVal variable As Byte) As Longint __stdcall MnpYc(int nAdress ,DOUBLE dValue,BYTE nPoint,BYTE byFlag); //遥测
//Declare Function MnpYc Lib "mnp" (ByVal variable As Long,ByVal variable As Double,ByVal variable As Byte,ByVal variable As Byte) As LongBOOL __stdcall MnpYx(BYTE byBox,BYTE byLight,BYTE byCode); //遥信
//Declare Function MnpYx Lib "mnp" (ByVal variable As Byte,ByVal variable As Byte,ByVal variable As Byte) As LongBOOL __stdcall MnpDimmer(BYTE nLight); //调光
//Declare Function MnpDimmer Lib "mnp" (ByVal variable As Byte) As Long#ifdef __cplusplus
}
#endif#endif===============================================================================
帮助文件中说明如下(部分):
此软件驱动采用动态连接库的形式,方便用户自己编写与模拟屏的接口,用户的编程语言可以为C,C++,Vb等。
使用方法:对于Win9x将动态连接库mnp.dll拷入system
对于WinNt/2000将动态连接库mnp.dll拷入system32
首先要调用初始化串口函数MnpInitComm,在程序退出时调用关闭串口函数MnpCloseComm。
此连接库由5个函数组成。
1. 初始化串口:
c函数原型 int __stdcall MnpInitComm(int nComm,int nSpeed);
vb函数原型 Declare Function MnpInitComm Lib "mnp" (ByVal variable As Long,ByVal variable As Long) As Long
参数:int nComm 串口号,从1开始
int nSpeed 波特率,有效值为1200、2400、4800、9600
返回值: 0 正确
1 CreateFile 错误
2 BuildCommDCB 错误
3 SetCommState 错误
4 SetCommTimeouts 错误
-------------------------------------------------------现要在程序中调用该DLL,在DELPHI中应该如何做,请高手详细写出步骤。公司有急用,谢谢!!!!!
解决方案 »
- 哪种情况下要用重载和虚拟方法?
- 程序的框架问题
- 问个简单的winsock问题~~
- 用NMHTTP如何实现输入一个参数,反回查询结果。
- Delphi7在DLL中使用ADO时出错,为什么?
- 有个小问题??关于 inherited的???
- 如何在合并word文档的时候.两篇文档之间加入分页符? cg1120(代码最优化)老兄,回得话快来领分丫!
- 关于“流”
- 小弟初学者,忍痛发出送分问题:
- delphi6安装Raize Components 4控件导致编译通不过!求助!
- lookup大数据量的时候严重影响速度(如滚动记录),如何办?
- ----100分-----请问再写corba object程序是出现 file not fount"orbpas.dsu"---请问各位大虾该如何处理?
按照它给出的函数原型申明外部函数(具体见Windows.pas单元):
function MnpInitComm(nComm,nSpeed:integer):integer; external 'mnp.dll';
这样,就可以象Delphi内部函数一样引用了。或是动态引用var
h : handle ;
fun : funciton (integer,integer) of integer ;//大概是这样的吧?
begin
h := LoadLibrary('mnp.dll') ;
if h <> 0 then
begin
fun := GetProcAddress(h) ;
//调用
fun(1,1200) ;
end;
end;
function MnpInitComm(nComm: integer; nSpeed: integer): integer; external 'mnp.dll';然后就可以在下面的程序中调用MnpInitComm函数了