Y
ynfly
Unregistered / Unconfirmed
GUEST, unregistred user!
我需要编写一个DLL在Lotus Notes中调用(Lotus Notes中的lsScript语法跟VB的语法可以说一样的)<br>此DLL的有一个重要的功能是读取源文件的部分信息然后存放到一个目标文件中,其中我要到了BlockRead<br>函数,编写完成后,我把此DLL拷贝到系统目录下面,然后在word的宏里面声明此Dll中的所有引出的函数,调用后,<br>结果均正常,然后在Notes里面建立一个数据库,然后在表单中声明此DLL中引出的所有函数,调用后发现<br>其他的函数结果正常,就是一个包含了BlockRead函数的引出函数调用结果不正常,下面是有问题的函数的代码:<br>function setWpgFiletoBmp(srcFileName,dstFileName,strPassword:string):integer;stdcall;<br> var<br> srcTypedFile:File;<br> decTypedFile:File;<br> BytesRead,BytesWritted:Integer;<br> Buffer:array[0..15] of byte;<br> strTruePassWord:string;<br> key:Word;<br> begin<br> Result:=0;<br> AssignFile(srcTypedFile,srcFileName);<br> AssignFile(decTypedFile,dstFileName);<br> if fileexists(dstFileName ) then<br> reset(decTypedFile)<br> else<br> rewrite(decTypedFile);<br> reset(srcTypedFile,1);<br> try<br> try<br> repeat <br> //经通过设计标记得方法,发现在Notes中执行时,下面代码不能运行<br> BlockRead(srcTypedFile,buffer,SizeOF(buffer),BytesRead);<br> if BytesRead>0 then<br> begin<br> BlockWrite(decTypedFile,buffer,BytesRead,BytesWritted);<br> if BytesRead<>BytesWritted then<br> raise Exception.Create('Error Copying file')<br> else begin<br> end;<br> end<br> until BytesRead=0;<br> except<br> Erase(decTypedFile);<br> raise;<br> end;<br> finally<br> closefile(decTypedFile);<br> end;<br> finally<br> closefile(srcTypedFile);<br> end;<br> Result:=1<br> end;<br><br><br>我想问的是1、BlockRead函数的调用是否有问题?<br> 2、如何用API函数的调用的方法代替BlockRead方法实现对无类型文件的读取,最好给出例子代码?