莫明其妙的问题,晕死了。。。。。。。。

firechun 2004-02-13 04:57:49
搞VB这么长时间,还真没碰到这样奇怪的事,今天全让我撞上了
第一个:
type pointapi
x as integer
y as integer
end type
type datainfo
index as byte
pos as pointapi
value byte
end type
调用writefile写文件
dim mydata(1 to 3) as datainfo
hFile = CreateFile(Info.FileName, GENERIC_WRITE, 0, ByVal 0&, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
WriteFile hFile, myCard(1), Info.CardCount * 6, dwByteWrites, ByVal 0&
datainfo的长度是6字节,我要写3个datainfo到文件中去,写是写成功了,但index和value却变成了integer,也就是说我的数据是这样的:mydata(1).index=1,mydata(1).pos.x=10,mydata(1).pos.y=20,mydata(1).pos.value=1........写到文件中应该是这样的形式:01 0A 00 14 00 01.......但是我得到的结果却是01 00 0A 00 14 00 01 00....其中index和value莫明其妙地变成了integer类型,我甚至把赋值语句改成mydata(1).index=cbyte(1)都不行。在写mydata之前,我还写入了一个文件头数据,又一切正常。没办法,我只好把mydata的数据重新赋给一个字节数组,再写入文件,虽然解决了问题,但总是不爽。大家来分析一下是什么原因造成这种现象。
第二个:
Private Declare Function CheckSerial Lib "sChipCheck" (ByVal Serial As String) As Boolean
这是我程序中声明的一个API,sChipCheck.dll是我用VC写的一个标准DLL,DLL没有问题,我公司所有的软件都使用这个DLL。程序在我的机器上运行正常,把程序和DLL考到同事的机器上,就报“找不到文件sChipCheck”,程序运行的目录和system目录下都有schipcheck.dll,把声明改成Private Declare Function CheckSerial Lib "c:\windows\system\sChipCheck" (ByVal Serial As String) As Boolean也不行,反正就是找不到文件,我晕死了。


...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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