请教,调用Dll的API函数示例

农民工IT 2013-01-11 10:38:24
小弟第一次使用别人提供DLL的API函数。不知道如何使用。

程序中应该怎么调用,定义函数。
别人提供的头文件如下,请教使用的示例代码


#ifndef __XR_WOOLINTE_DLL_H__
#define __XR_WOOLINTE_DLL_H__

#ifdef __XR_WOOLINTE_DEF_DLL
#define DLLAPI __declspec(dllexport)
#else
#define DLLAPI __declspec(dllimport)
#endif

#ifdef __cplusplus
extern "C" {
#endif

#pragma pack(push, 1)

//定位数据内容结构
typedef struct tagGPSDataPack
{
BYTE byLock; //定位标志
//位7:GPS有效
//位5:西经
//位4:南纬
int longitude; //经度 单位ms
int latitude; //纬度 单位ms
char gpstm[6]; //时间, 年月日时分秒
}GPSDataPack,*LPGPSDataPack;


#pragma pack(pop)




/*
*********************************************************************
函数名称:
函数功能: 定义回调函数的类型
入口参数:
msg: 消息ID
wParam: 参数 0表示不成功 1表示成功
lParam: wParam==0的情况下 0表示超时 1表示已存在 2表示失败
出口参数:
注意事项:
*********************************************************************
*/
typedef void(CALLBACK *lpFunCallBack)(UINT msg, WPARAM wParam, LPARAM lParam);


/*
*********************************************************************
函数名称: InitDll
函数功能: 初始化动态链接库
入口参数:
出口参数: 0:成功 -1:失败
注意事项:
*********************************************************************
*/
DLLAPI int InitDll();


/*
*********************************************************************
函数名称: SetSendInterval
函数功能: 设置发送间隔
入口参数:
出口参数: 发送间隔时间 单位s
注意事项:
**********************************************************************
*/
DLLAPI int SetSendInterval(int iInterval);


/*
*********************************************************************
函数名称: SetDetectInterval
函数功能: 设置检测超时间隔
入口参数:
出口参数: 超时间隔时间 单位s
注意事项:
**********************************************************************
*/
DLLAPI int SetDetectInterval(int iInterval);


/*
*********************************************************************
函数名称: GetGPSPositon
函数功能: 获取GPS信息
入口参数: pGpsData: 指向GPS信息结构体
出口参数:
注意事项: 包含:定位标志、经纬度、时间
**********************************************************************
*/
DLLAPI void GetGPSPositon(LPGPSDataPack pGpsData);

/*
*********************************************************************
函数名称: SendMarkInfo_Force
函数功能: 发送标注信息
入口参数: iLong: 经度
iLati: 纬度
bDateTime: 年月日时分秒
pName: 名称
pPhone: 电话
pAddr: 地址
pContact: 联系人
出口参数: 0: 前面一个命令还未处理完成 发送失败
!0: 发送成功 返回的是发送包的序列号
成功的情况下还需等待服务器回复才能确定是否成功
注意事项: 强制覆盖 不提示
**********************************************************************
*/
DLLAPI int SendMarkInfo_Force(int iLong, int iLati, BYTE bDateTime[6],
char *pName, char *pPhone, char *pAddr, char *pContact);



/*
*********************************************************************
函数名称: WGSetCallbackFN
函数功能: 设置回调函数
入口参数: lpFunCallBack 类型的函数指针
出口参数:
注意事项:
*********************************************************************
*/
DLLAPI void WGSetCallbackFN(lpFunCallBack pCallback);


/*
*********************************************************************
函数名称: UninitDLL
函数功能: 释放动态链接库
入口参数:
出口参数: 0:成功 -1:失败
注意事项:
**********************************************************************
*/
DLLAPI int UninitDLL();




#ifdef __cplusplus
}
#endif

#endif //__XR_WOOLINTE_DLL_H__


...全文
175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
别人的Dll也是有命名空间的,你用命名空间点就能点出来
bigbaldy 2013-01-11
  • 打赏
  • 举报
回复
引用 4 楼 wesley219 的回复:
引用 2 楼 njw1028 的回复:DllImport引入先 DllImport,有个结构体的,不知道该怎么写。 能写个例子吗?
结构声明一下就可以用了

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct tagGPSDataPack
{
   public byte bylock;
   public int longitude;
   public int latitude;
   [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
   public char[] gpstm;
}
农民工IT 2013-01-11
  • 打赏
  • 举报
回复
引用 2 楼 njw1028 的回复:
DllImport引入先
DllImport,有个结构体的,不知道该怎么写。 能写个例子吗?
农民工IT 2013-01-11
  • 打赏
  • 举报
回复
不能直接引用使用的。
njw1028 2013-01-11
  • 打赏
  • 举报
回复
DllImport引入先

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧