求救:怎样用 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
...全文
159 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
stardicky 2003-09-01
  • 打赏
  • 举报
回复
急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
内容概要:本文围绕“基于共享储能服务的智能楼宇双层优化配置”展开研究,提出了一种结合上层共享储能配置优化与下层楼宇内部能源调度优化的双层协同模型,通过Matlab代码实现,旨在提升智能楼宇在复杂能源环境下的运行效率与经济性。研究充分考虑光伏出力、负荷需求等不确定性因素,引入多维核密度估计、场景生成与削减等技术进行不确定性建模,并融合需求响应、微电网调度等先进理念,实现了对综合能源系统中储能资源的高效配置与动态调控,具有较强的理论深度与工程应用价值。; 适合人群:具备电力系统、可再生能源、优化算法或综合能源系统等相关背景,从事科研、工程应用或课题研究的研发人员、研究生及高年级本科生。; 使用场景及目标:①应用于智能楼宇、园区微电网、虚拟电厂等场景中的储能规划与运行优化;②支撑高水平学术论文(如EI/SCI)的复现、课题申报、毕业设计及实际项目的双层优化建模与求解实践。; 阅读建议:建议结合提供的Matlab代码进行实操演练,重点理解双层优化架构的设计逻辑、求解策略(如Benders分解、主从博弈等)及不确定性处理方法,同时可参考文中关联技术(如场景生成、需求响应)拓展研究思路与应用场景。

111,129

社区成员

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

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

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