S
sy0116
Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个小程序中放了一个OpenDialog控件,写了这样一些代码:<br>type<br> TIRC=packed record<br> iMouseAction:Integer;<br> iIrcCodeWORD;<br> sCmd:array [0..1023] of Char;<br> end;<br> PIRC=^TIRC;<br>type<br> _WriteFile=function(h:THandle;bufointer;sizeWORD;var bytWORD;pointer):Cardinal;stdcall;<br><br>var<br> pArrList:array [0..255] of PIRC;<br> MyWriteFile:_WriteFile;<br><br>procedure TForm1.suiButton1Click(Sender: TObject);<br>begin<br> if OpenDialog1.Execute then<br> Path:=OpenDialog1.FileName;<br> suiEdit5.Text:=Path;<br>end;<br>//……中间省略一段把suiEdit5.Text复制到一个ArrStr:Array [0..255] of Char的字符数组中去的代码<br>procedure SaveFile;<br>begin<br>//省略一些无关代码<br> hCFGFile:=CreateFile('sy0116.cfg',<br> GENERIC_WRITE,<br> FILE_SHARE_WRITE,<br> nil,<br> CREATE_ALWAYS,<br> FILE_ATTRIBUTE_NORMAL,<br> 0);<br> for i:=0 to k -1 do<br> begin<br> MyWriteFile(hCFGFile,pArrList,SizeOf(TIRC),dwbytes,nil);<br> end;<br>end;<br>现在的问题是,如果suiEdit5中的文字是通过键盘输入的话那么这段代码执行一切正常,sy0116.cfg文件中可以正确记录下我要记录的数据,但如果通过点击鼠标然后从OpenDialog中得到文件路径则文件中不能记下我要记录的内容,而且用GetLastError也得不到任何错误,但是此时如果把CreateFile的第一个参数改成:<br>PChar((ExtractFilePath(ParamStr(0)))+ '/sy0116.cfg'),<br>则又可以正确记录数据了,不知各位有没有遇到过这样的问题,另外,sy0116.cfg这个文件之前是用CreateFile打开过并且用ReadFile读取过数据然后CloseHandle过的