社区
VB基础类
帖子详情
各位大哥 帮忙 一个vc 转vb的问题
slxn
2003-08-30 10:42:02
vc定义的函数: bool chard(byte address,FILE * fp)
各位大哥参数FILE *fp 应如何用vb表达
小弟刚学vb 那位大哥帮帮 我
...全文
48
9
打赏
收藏
各位大哥 帮忙 一个vc 转vb的问题
vc定义的函数: bool chard(byte address,FILE * fp) 各位大哥参数FILE *fp 应如何用vb表达 小弟刚学vb 那位大哥帮帮 我
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Greaitm
2003-08-30
打赏
举报
回复
你在VB里根本就用不了fopen,你就用VB打开文件不行吗?
射天狼
2003-08-30
打赏
举报
回复
呵呵,对于什么也不懂的老板也没办法了.
你就直接把要打开的文件名传过去吧,在函数里打开文件就行了~~
slxn
2003-08-30
打赏
举报
回复
我 这个星期程序没搞多少 vb到学了不少! 多亏各位大哥帮忙 要不我现在估计还没动手
slxn
2003-08-30
打赏
举报
回复
老大 我晕死了! 老板非让我把这个程序改成vb的
他以为这是“英译汉”呢!! 我vb要现学!
这是一个智能卡考勤机的测试程序
这个函数作用是 把pc上的一批用户名单(保存在一个txt文件中)下载到考勤机中 先对这个名单资料处理 然后调动态库完成下传
老大 你看看 帮我想个方法
这个函数的调用:
FILE *fpListFilePointer;
fpListFilePointer = fopen((char *)lpszSourceFileName.operator LPCTSTR(), "r+t");
if (fpListFilePointer == NULL)
{
m_PromptListBox.AddString("对不起!打不开下载名单文件。");
return;
}
if (!LoadMaterialsToSlave(m_byteAddress, fpListFilePointer))
{
m_PromptListBox.AddString("线路干扰严重,本次采集无效,请查线路或稍后重试!");
Sleep(2000);
fclose(fpListFilePointer);
return;
}
m_PromptListBox.AddString("下载名单成功!");
fclose(fpListFilePointer);
}
这个函数:
:LoadMaterialsToSlave(BYTE byteAddress, FILE *fpListFilePointer)
{
char lpbyteTempBuf[1024];
CString str;
int j;
WORD wReturn;
int nCardNumber;
int nWorkerNo;
int nWorkerNameLength;
WORD lpRecordNumber[2];
// process the materials,一次最多读取80条,超过80条要做n次读取
// 然后每次80条往下传
BYTE lpTransmittedData[2048]; //存放资料
WORD wRecordNumber = 0;
WORD wTotalRecordNumber;
/* 添加进度条显示 */
CProgressDlg dlgProgress;
dlgProgress.Create();
dlgProgress.SetRange(0,100);
dlgProgress.SetPos(0);
dlgProgress.SetStatus("正在下载名单,请稍候...");
WORD wLineLength = 0;
// get record number
while (!feof(fpListFilePointer))
{
if (fgets(lpbyteTempBuf, 1024, fpListFilePointer) == 0)
break;
wRecordNumber++;
}
wTotalRecordNumber = wRecordNumber;
fseek(fpListFilePointer, 0, SEEK_SET);
str.Format("下载名单总数为:%d", wTotalRecordNumber);
m_PromptListBox.AddString(str);
for ( ; ; )
{
if (wRecordNumber > 80)
{
for (j = 0; j < 80; j++)
{
if(wLineLength++ == wTotalRecordNumber / 10)
{
wLineLength = 0;
dlgProgress.StepIt();
}
//get card number
fscanf(fpListFilePointer, "%s", lpbyteTempBuf);
nCardNumber = atoi (lpbyteTempBuf);
lpTransmittedData[0 + j * 15] = (BYTE)((nCardNumber >> 16) & 0xFF);
lpTransmittedData[1 + j * 15] = (BYTE)((nCardNumber >> 8) & 0xFF);
lpTransmittedData[2 + j * 15] = (BYTE)((nCardNumber ) & 0xFF);
//get worker no
fscanf(fpListFilePointer, "%s", lpbyteTempBuf);
if (lpbyteTempBuf[1] > 0x39)
{
lpTransmittedData[3 + j * 15] = lpbyteTempBuf[0];
lpTransmittedData[4 + j * 15] = lpbyteTempBuf[1];
nWorkerNo = atoi (lpbyteTempBuf + 2);
lpTransmittedData[5 + j * 15] = (BYTE) ((nWorkerNo >> 8) & 0xFF);
lpTransmittedData[6 + j * 15] = (BYTE) ( nWorkerNo & 0xFF);
}
else if (lpbyteTempBuf[0] > 0x39)
{
lpTransmittedData[3 + j * 15] = 0x20;
lpTransmittedData[4 + j * 15] = lpbyteTempBuf[0];
nWorkerNo = atoi (lpbyteTempBuf + 1);
lpTransmittedData[5 + j * 15] = (BYTE) ((nWorkerNo >> 8) & 0xFF);
lpTransmittedData[6 + j * 15] = (BYTE) ( nWorkerNo & 0xFF);
}
else
{
lpTransmittedData[3 + j * 15] = 0x20;
lpTransmittedData[4 + j * 15] = 0x20;
nWorkerNo = atoi (lpbyteTempBuf);
lpTransmittedData[5 + j * 15] = (BYTE) ((nWorkerNo >> 8) & 0xFF);
lpTransmittedData[6 + j * 15] = (BYTE) ( nWorkerNo & 0xFF);
}
//get worker name
fscanf(fpListFilePointer, "%s", lpbyteTempBuf);
nWorkerNameLength = strlen (lpbyteTempBuf);
for (int k = 0; k < nWorkerNameLength; k++)
lpTransmittedData[k + 7 + j * 15] = (BYTE) lpbyteTempBuf[k];
for (k = 0; k < 8 - nWorkerNameLength; k++)
lpTransmittedData[k + 7 + nWorkerNameLength + j * 15] = 0xFF;
。。。。。。。。。。
dsclub
2003-08-30
打赏
举报
回复
对了,取得指针的函数还有
VarPtr
ObjPtr
StrPtr
:)
dsclub
2003-08-30
打赏
举报
回复
ByRef 传递参数指针
接受函数指针用Long类型,传递函数指针用AddressOf返回
射天狼
2003-08-30
打赏
举报
回复
哈哈 ,哥们,你干什么呢,怎么总问这一类的问题啊~~
这是一个文件类型的指针,VB里没有指针,也没有文件类型,你把带整个函数贴出来,看用别的方法能不能替带吧~~
射天狼
2003-08-30
打赏
举报
回复
哈哈 ,哥们,你干什么呢,怎么总问这一类的问题啊~~
这是一个文件类型的指针,VB里没有指针,也没有文件类型,你把带整个函数贴出来,看用别的方法能不能替带吧~~
slxn
2003-08-30
打赏
举报
回复
行 我试试 谢谢各位大哥 指导了!! 小弟 这 有礼了
vb
/
vb
.net开发精粹(8)
300元请人做
一个
自动点击领取的软件 300元请人做
一个
自动点击领取的软件
vb
中如何将excel导入到sql server的数据库中
vb
调用
vc
动态连接库
问题
!...
VB
中如何用ADO从ORACLE中复制
一个
表到ACCESS数据库
vb
/
vb
.net开发技巧荟萃(六)
300元请人做
一个
自动点击领取的软件 300元请人做
一个
自动点击领取的软件
vb
中如何将excel导入到sql server的数据库中
vb
调用
vc
动态连接库
问题
!!(100分求) SQL查询
问题
??会的快来 已会C++, 再学习
VB
还是C#? ...
vb
/
vb
.net开发精粹(4)
各位
帮忙
找
一个
w70n5msg.dll 文件 VB中如何使用insert语句,插入一条纪录 分布式组件状态
问题
在
VB
6.0中 使用SQLDMO.SQLServer 显示数据库名称出错啦, 请大家指点一下 在
VB
控制水晶报表中,用不固定的数据源...
VC
常用数据类型使用
转
换详解
VC
常用数据类型使用
转
换详解- - 有关数据类型
转
换的整理 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君 "; char temp[20
vc
数据类型
转
换大全
int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;...一、其它数据类型
转
换为字符串短整型(int)itoa(i,temp,10);///将i
转
换为字符串放入te
VB基础类
7,763
社区成员
197,605
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章