求救:怎样用 VC# 调用 Visual C++ 6.0 编的静态库文件

stardicky 2003-09-01 06:29:50
我得到一个 usb2006.H和 usb2006.Lib (这是一个数据采集卡的库函数希望能给出源码)

usb2006.H 文件内容如下:
#include<windows.h>
// 用于AD采集的参数结构
typedef struct _USB2006_PARA_AD // 板卡各参数值
{
DWORD FirstChannel; // 首通道
DWORD LastChannel; // 末通道
}USB2006_PARA_AD,*PUSB2006_PARA_AD;
//***********************************************************

// 用于开关量的参数结构
#ifndef _USB2006_PARA_DO
typedef struct _USB2006_PARA_DO // 数字量输出参数
{
BYTE DO0; // 0通道
BYTE DO1; // 1通道
BYTE DO2; // 2通道
BYTE DO3; // 3通道
BYTE DO4; // 4通道
BYTE DO5; // 5通道
BYTE DO6; // 6通道
BYTE DO7; // 7通道
BYTE DO8; // 8通道
BYTE DO9; // 9通道
BYTE DO10; // 10通道
BYTE DO11; // 11通道
BYTE DO12; // 12通道
BYTE DO13; // 13通道
BYTE DO14; // 14通道
BYTE DO15; // 15通道
} USB2006_PARA_DO,*PUSB2006_PARA_DO;
#endif

#ifndef _USB2004_PARA_DI
typedef struct _USB2006_PARA_DI // 数字量输入参数
{
BYTE DI0; // 0通道
BYTE DI1; // 1通道
BYTE DI2; // 2通道
BYTE DI3; // 3通道
BYTE DI4; // 4通道
BYTE DI5; // 5通道
BYTE DI6; // 6通道
BYTE DI7; // 7通道
BYTE DI8; // 8通道
BYTE DI9; // 9通道
BYTE DI10; // 10通道
BYTE DI11; // 11通道
BYTE DI12; // 12通道
BYTE DI13; // 13通道
BYTE DI14; // 14通道
BYTE DI15; // 15通道
} USB2006_PARA_DI,*PUSB2006_PARA_DI;
#endif
//***********************************************************

//***********************************************************
// CreateFileObject所用的文件操作方式控制字(可通过或指令实现多种方式并操作)
#define USB2006_modeRead 0x0000 // 只读文件方式
#define USB2006_modeWrite 0x0001 // 只写文件方式
#define USB2006_modeReadWrite 0x0002 // 既读又写文件方式
#define USB2006_modeCreate 0x1000 // 如果文件不存可以创建该文件,如果存在,则重建此文件,并清0
//***********************************************************


#ifndef DEFINING
#define DEVAPI __declspec(dllimport)
#else
#define DEVAPI __declspec(dllexport)
#endif

#ifdef __cplusplus
extern "C" {
#endif
//################### 设备对象操作函数 ####################
DEVAPI HANDLE FAR PASCAL USB2006_CreateDevice(int DeviceID);
DEVAPI BOOL FAR PASCAL USB2006_ReleaseDevice( // 释放设备对象和相关资源
HANDLE hDevice); // 设备句柄


DEVAPI BOOL FAR PASCAL USB2006_InitDeviceAD( // 初始化设备,当返回TRUE后,设备即刻开始传输.
HANDLE hDevice, // 设备句柄
PUSB2006_PARA_AD pParameter); // 硬件参数, 它仅在此函数中决定硬件状态

DEVAPI BOOL FAR PASCAL USB2006_ReadDeviceAD( // 初始化设备后,即可用此函数读取设备上的AD数据
HANDLE hDevice, // 设备句柄
PWORD InUserRegion, // 将用于接受数据的用户缓冲区
ULONG ReadSizeWords); // 读取AD数据的长度

DEVAPI BOOL FAR PASCAL USB2006_ReleaseDeviceAD( // 关闭设备,禁止传输,且释放资源
HANDLE hDevice); // 设备句柄

//################# AD的硬件参数操作函数 ######################
DEVAPI BOOL FAR PASCAL USB2006_SaveParameter(HANDLE hDevice, PUSB2006_PARA_AD pParameter);
DEVAPI BOOL FAR PASCAL USB2006_LoadParameter(HANDLE hDevice, PUSB2006_PARA_AD pParameter);

//################### 数字I/O输入输出函数 ######################
// 用户可以使用WriteRegisterULong和ReadRegisterULong等函数直接控制寄存器进行I/O
// 输入输出,但使用下面两个函数更省事,它不需要您关心寄存器分配和位操作等,而只
// 需象VB等语言的属性操作那么简单地实现各开关量通道的控制。
DEVAPI BOOL FAR PASCAL USB2006_SetDeviceDO( // 输出开关量状态
HANDLE hDevice, // 设备句柄
PUSB2006_PARA_DO pPara); // 开关状态



DEVAPI BOOL FAR PASCAL USB2006_GetDeviceDI( // 取得开关量状态
HANDLE hDevice, // 设备句柄
PUSB2006_PARA_DI pPara); // 开关状态


DEVAPI BOOL FAR PASCAL USB2006_SetDeviceDO8( // 输出开关量状态
HANDLE hDevice, // 设备句柄
PUSB2006_PARA_DO pPara); // 开关状态



DEVAPI BOOL FAR PASCAL USB2006_GetDeviceDI8( // 取得开关量状态
HANDLE hDevice, // 设备句柄
PUSB2006_PARA_DI pPara); // 开关状态


//########################### 文件操作函数 #####################################
DEVAPI HANDLE FAR PASCAL USB2006_CreateFileObject( // 初始文件系统
HANDLE hDevice, // 设备对象
LPCTSTR NewFileName, // 新文件名
int Mode); // 文件操作方式
DEVAPI BOOL FAR PASCAL USB2006_WriteFile( // 保存用户空间中数据
HANDLE hFileObject, // 设备对象
PWORD pUserRegion, // 用户数据空间地址
ULONG nWriteSizeBytes); // 缓冲区大小(字节)

DEVAPI BOOL FAR PASCAL USB2006_ReadFile( // 读数据
HANDLE hFileObject, // 设备对象
PWORD pFileUserRegion, // 接受文件数据的用户内存缓冲区
ULONG OffsetBytes, // 从文件前端开始的偏移位置
ULONG nReadSizeBytes); // 从偏移位置开始读的字节数

DEVAPI ULONG FAR PASCAL USB2006_GetFileLength(HANDLE hFileObject); // 取得指定文件长度(字节)
DEVAPI BOOL FAR PASCAL USB2006_SetFileOffset( // 设置文件偏移指针
HANDLE hFileObject, // 文件对象
ULONG nOffsetBytes); // 文件偏移位置(以字为单位)


DEVAPI BOOL FAR PASCAL USB2006_ReleaseFile(HANDLE hFileObject);
DEVAPI ULONG FAR PASCAL USB2006_GetDiskFreeBytes( // 获得指定盘符的磁盘空间
LPCTSTR DiskName); // 盘符名,如C盘为"C:\\", D盘为"D:\\"


//################# 线程操作函数 ########################
DEVAPI HANDLE FAR PASCAL USB2006_CreateSystemEvent(void); // 创建内核事件对象
DEVAPI BOOL FAR PASCAL USB2006_CreateVBThread(HANDLE *hThread, LPTHREAD_START_ROUTINE StartThread);
DEVAPI BOOL FAR PASCAL USB2006_TerminateVBThread(HANDLE hThreadHandle);


#ifdef __cplusplus
}
#endif
...全文
62 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
stardicky 2003-09-01
急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-09-01 06:29
社区公告

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