createfile和copyfile都失败啊,为什么 [问题点数:40分,结帖人dosmlp]

Bbs1
本版专家分:0
结帖率 83.33%
Bbs7
本版专家分:29442
版主
Blank
优秀版主 2014年11月论坛优秀版主
Blank
黄花 2013年12月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2014年2月 VC/MFC大版内专家分月排行榜第三
2013年11月 VC/MFC大版内专家分月排行榜第三
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs10
本版专家分:172083
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年7月 VC/MFC大版内专家分月排行榜第二
2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs7
本版专家分:29442
版主
Blank
优秀版主 2014年11月论坛优秀版主
Blank
黄花 2013年12月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2014年2月 VC/MFC大版内专家分月排行榜第三
2013年11月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs7
本版专家分:29442
版主
Blank
优秀版主 2014年11月论坛优秀版主
Blank
黄花 2013年12月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2014年2月 VC/MFC大版内专家分月排行榜第三
2013年11月 VC/MFC大版内专家分月排行榜第三
createfile打开失败的问题??
#include rnrn#define _WIN32_WINNT 0x0500rn#include rnrnrnint main(int argc, char *argv[])rnrnrn HANDLE hDirectory = CreateFile("D:\\", GENERIC_ALL, FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE, NULLrn , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);rn rn if (INVALID_HANDLE_VALUE == hDirectory) [color=#FF0000] //现在是在这里出了鬼,老是无效句柄[/color]rn rn cout << "create file failed!" << endl;rn DWORD dwErr = GetLastError();rn return -1;rn rn rn while (TRUE)rn rn Sleep(1000);rnrn FILE_NOTIFY_INFORMATION stFileNotifyInfo = 0;rn DWORD dwBytesRet = 0;rnrn BOOL bRet = ReadDirectoryChangesW(rn hDirectory,rn &stFileNotifyInfo,rn sizeof (FILE_NOTIFY_INFORMATION),rn TRUE,rn FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME|FILE_NOTIFY_CHANGE_ATTRIBUTES|FILE_NOTIFY_CHANGE_SIZE|FILE_NOTIFY_CHANGE_LAST_WRITE|FILE_NOTIFY_CHANGE_LAST_ACCESS|FILE_NOTIFY_CHANGE_CREATION|FILE_NOTIFY_CHANGE_SECURITY, rn &dwBytesRet,rn NULL,rn NULLrn );rn rn if (bRet)rn rn cout << "change occour!" << endl;rn rn rnrn CloseHandle(hDirectory);rnrn return 0;rnrnrn我想写个文件监控程序,我首先要用<em>createfile</em>打开一个文件,得到handle,然后再ReadDirectoryChangesW,传递这个handle进去,但是我现在<em>createfile</em>打开directory死活成功不了,错误号老是3,无法识别路径,出了鬼了,请各位帮忙看看,谢谢了.
CreateFile失败 GetLastError=2
[code=Delphi(Pascal)]rn#include rn#include rnrnvoid main()rnrn HANDLE handle=CreateFile("D:\\E.EXE", rn GENERIC_READ, rn FILE_SHARE_READ, rn NULL, rn OPEN_EXISTING, rn FILE_ATTRIBUTE_NORMAL, rn 0);rn if ( handle==INVALID_HANDLE_VALUE )rn rn printf( "%d",GetLastError() );rn return;rn rnrn[/code]
CreateFile创建文件失败??????????-〉help
新建一个Dialog程序rn在OnInitDialog()中添加rnrn HANDLE hFile;rn hFile = CreateFile("C:\tradex.txt",rn GENERIC_WRITE,rn FILE_SHARE_READ,rn NULL,rn CREATE_ALWAYS, rn FILE_ATTRIBUTE_NORMAL,rn NULL); rn if (hFile == INVALID_HANDLE_VALUE)rn rn MessageBox("Create file error!",NULL,MB_OK);rn return 0;rn rnrn编译没错,就是运行的时候出一框:Create file error!
createfile失败的原因
提个问题 关于CreateFile的 应用层符号链接名定义为szSymbolicLinkName    db  '////.//SLINK1',0 invoke  CreateFile,addr szSymbolicLinkName,GENERIC_READ + GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL再调用GetLastError 返回错误53<br /
createfile()创建文件失败的问题
我想以系统时间为名创建文件,下面是我的代码,有个问题一直过不去,运行环境是wince5.0,用VS2005开发;请明白人指教一下:[color=#FF0000]问题见批注[/color]rn 一,类Client中用到的相关代码 rn public:rn int StartSave();rn private:rn static wchar_t save_date[60];rn static int save_callback( void *inst , void* sample);rn 二,StartSave()rn rn ...rn SYSTEMTIME saveNowtime;rn GetLocalTime(&saveNowtime); rn rn swprintf(save_date,(wchar_t*)(_T("\\\\硬盘\\\\%4d-%2d-%2d %2d:%2d:%2d.rec"))rn rn ,saveNowtime.wYear rn rn ,saveNowtime.wMonth rn rn ,saveNowtime.wDay rn rn ,saveNowtime.wHour rn rn ,saveNowtime.wMinute rn rn ,saveNowtime.wSecond); rn .....rnrn这一段的作用是将系统时间转化为一个字符串!rn 我用messagebox打印出save_date的值为\\硬盘\\2003-1-1 12:12:3.recrnrn三,在回调函数中创建文件rnrn hFile=CreateFile(save_date, rn GENERIC_READ|GENERIC_WRITE,rn 0,rn NULL,rn OPEN_ALWAYS,rn FILE_ATTRIBUTE_NORMAL,rn 0);rn if(hFile==INVALID_HANDLE_VALUE)rn rn MessageBox(NULL,_T("文件打开<em>失败</em>"),0,0); rn return 0;rn rnrn 程序编译后无错误,在执行过程中总是打出”文件打开<em>失败</em>“,我查看了错误代码是6号,也就是ERROR_INVALID_HANDLE,这是什么原因导致的啊?rnrn [color=#FF0000]注意:如果我在”hFile=CreateFile(save_date, “ rn 这一行前加wchar_t path[]=_T("\\硬盘\\book.txt");rn 并且把CreateFile的第一个参数换成path,则程序正常运行!所以感觉是save_date出问题了,但是打印出来路径对啊?不知跟宽字符有关吗?save_date和path都是宽字符啊?[/color]
关于CreateFile失败
Windows mobile 6 (vs2005)用CreateFile连续新建很多个文件,用模拟器来测试,共享pc机上的目录来模拟一个Storage Card目录rn hFile = CreateFile(lpFolder,rn GENERIC_READ|GENERIC_WRITE,rn FILE_SHARE_READ|FILE_SHARE_WRITE,rn NULL,rn CREATE_ALWAYS,rn FILE_ATTRIBUTE_NORMAL,rn NULLrn );rn如果我的lpFolder不是建在//Storage Card,就没问题。但如果是,CreateFile会在循环建立文件到某一次时<em>失败</em>,请问这是怎么回事?
CreateFile操作命名管道失败
服务器代码:rn[code=c]rn#include rn#include rnrnint main()rnrn HANDLE hpip;rn OVERLAPPED ovi = 0;rn char buff[200];rn DWORD readbuf;rn hpip = CreateNamedPipe( TEXT("\\\\.\\pipe\\pipename"), PIPE_ACCESS_DUPLEX,rn PIPE_TYPE_BYTE, PIPE_UNLIMITED_INSTANCES, 1024, 1024, 0, NULL );rn printf( "success to create named pipe, waiting for client to connect. \r\n" );rn if( ::ConnectNamedPipe( hpip, &ovi ) )rn rn printf( "client success to connect!\r\n");rn printf( "reading data! \r\n" );rn if( ReadFile( hpip, buff, 200, &readbuf, NULL )) rn rn printf( "success to read data\r\n" );rn printf( "the data read is: %s\r\n", buff );rn rn elsern rn printf( "fail to read data!\r\n" );rn printf( "error message: %ld", GetLastError() );rn rn rn return 0;rnrnrn[/code]rnrn客户端代码:rnrn[code=c]rn#include rn#include rnrnint main()rnrn HANDLE hpip;rn OVERLAPPED ovi = 0;rn char buff[200] = "命名管道测试程序";rn DWORD readbuf;rn printf( "reading named pipe.\r\n" );rn rn if( WaitNamedPipe( TEXT("\\\\.\\pipe\\pipename"), NMPWAIT_WAIT_FOREVER))rn rn hpip = CreateFile( TEXT("\\\\.\\pipe\\pipename"), GENERIC_READ | GENERIC_WRITE , 0, rn NULL, OPEN_EXISTING, 0, NULL );rn if( hpip = INVALID_HANDLE_VALUE )rn rn printf( "fail to open named pipe\r\n" ); rn printf( "error message: %ld", GetLastError() );rn rn elsern rn if( WriteFile( hpip, buff, sizeof( buff ), &readbuf, NULL ) )rn rn printf( "success to write data.\r\n" ); rn rn elsern rn printf( "fail to write data.\r\n" ); rn rn rn rn elsern rn printf( "fail to connect named pipe. \r\n" );rn rn return 0;rnrnrn[/code]rnrn服务器端运行结果:rn-------------------------------------------rnsuccess to create named pipe, waiting for client to connect.rnclient success to connect!rnreading data!rnfail to read data!rnerror message: 109rn------------------------------------------rnrn客户端运行结果:rn----------------------------------------rnreading named pipe.rnfail to open named pipernerror message: 0rn----------------------------------------rnrnrn出错的位置是客户端程序的这一句:rn[code=c]rnrn hpip = CreateFile( TEXT("\\\\.\\pipe\\pipename"), GENERIC_READ | GENERIC_WRITE , 0, rn NULL, OPEN_EXISTING, 0, NULL );rn[/code]rnrn调试了很久也不行,请指教,谢谢。
请问createfile打开失败
我的操作如下:rnwchar_t fileName[256] = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.txt";rnHANDLE hMedia = CreateFile(fileName, GENERIC_READ, rn FILE_SHARE_READ, NULL, OPEN_EXISTING, rn FILE_ATTRIBUTE_NORMAL, NULL);rnrnDWORD error = GetLastError();rnif (INVALID_HANDLE_VALUE == hMedia)rnrn printf("Open media file failed!\n");rnrnrn这样操作,怎么老是<em>失败</em>,请问怎么回事。谢谢。
CreateFile创建内存映射文件失败
system32\config\system,该文件无法拷贝,无法移动。rn现在我CreateFile文件<em>失败</em>,但我还想把这个文件映射到内存中去,该怎么操作?rn
CreateFile打开USB设备失败
CString uDisk = "\\\\.\\PhysicalDrive";rnCString csNum = "1";//或"2","3",,,,rnHANDLE hDev = CreateFile(uDisk+csNum, GENERIC_WRITE|GENERIC_READ, rn FILE_SHARE_READ|FILE_SHARE_WRITE,rn NULL, OPEN_EXISTING,0,NULL);rnDWORD dwError = GetLastError();rnrn问题是:我在XR系统里以这样的方式打开U盘没有问题,但在Windows7里打开就出错,错误信息是dwError=ERROR_ACCESS_DENIED。我查过,可能是Windows账号权限不够的原因,请问各位大虾,有没有办法可以解决这个问题?谢谢!rnrn补充说明:我这里的U盘是自己做的,因为只有14Kbyte,所以做成FAT12格式的。
hVXD=CreateFile失败
hVXD=CreateFile("\\\\.\\Inte.vxd",0,0,0,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE,0);rn老是出现下面情况rnhVXD==INVALID_HANDLE_VALUErn前提有把Inte.vxd和Inte.inf拷贝到system32里面。rn请指教!rn
CreateFile返回创建文件失败
m_hFile = ::CreateFile((LPCTSTR)m_strFilePath, GENERIC_READ | GENERIC_WRITE ,rn FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);rn if(m_hFile == INVALID_HANDLE_VALUE)rn rn AfxMessageBox("创建文件<em>失败</em>");rn return -1;rn rn我单步走到这里的时候,老是近入if语句,不知道是怎么回事?rn我在m_strFilePath值为c:\\csl.txt,如果我把m_strFilePath值改为d:\\csl.txtrn单步调试就能够顺利跳过去,但是我在CreateFile设置了CREATE_ALWAYS,不管他存在不存在我都创建,怎么会返回INVALID_HANDLE_VALUE.~我想把已经存在c:\csl.txt覆盖一次<em>为什么</em>不行啊!~有什么办法吗>
CreateFile打开物理磁盘失败,失败返回代码87,为什么呢?
[code=C/C++]rn#include "stdafx.h"rn#include rn#include rnint main() rn HANDLE hFile=CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ,rn FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);rn if(INVALID_HANDLE_VALUE==hFile)rn printf("open error %d\n",GetLastError());rn rn return 0;rnrnrn[/code]rn运行输出:rnopen error 87rnPress any key to continue
CopyFile 怎么用啊?
代码:rnBOOL b=CopyFile(_T("C:\Documents and Settings\Administrator\桌面\Tissot.jpg"),_T("C:\Documents and Settings\Administrator\桌面\media\Tissot"),true);rnrn返回的b为FALSE;rnrn应该怎么改啊?
CopyFile 失败 错误号20
rt 代码比较长,两百来行! 不贴了! 不过我的路径名是这样子拼起来了rn1.getcurrentdirectoryrn2.lstrcat,.....rn3.<em>copyfile</em>,str1,str2,falsern<em>为什么</em>呢?~
为什么写入文件失败
错误类型:rnADODB.Stream (0x800A0BBC)rn写入文件<em>失败</em>。rn/up/尚网无组件上传1.0使用手册及示例/jjupload2b/jjUploadclass1.0.asp, 第 146 行rnrnrn浏览器类型:rnMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) rnrn网页:rnPOST 1814 ??? /up/尚网无组件上传1.0使用手册及示例/jjupload2b/upload.asprnrnPOST Data:rn错误 '80020009' rn发生意外。 rnrn/iisHelp/common/500-100.asp,行 219rn
为什么失败啊~!
//测试底下的一个概念<em>为什么</em><em>失败</em>啊?rn rn rn class classArnrn String namea="classA";rn rn rnclass classB extends classArn rn String name="classB";rn rn rnrnpublic class testrnrn public static void main(String[]args)rn rn classA a= new classA();rn a=(classB)a;//(classB是要转换的对象,a是相当作b的实例使用的对象<em>为什么</em><em>失败</em>啊)rn System.out.print(a.name);rn/**如果B是A的子类,那么B的一个实例亦可作为A的实例来使用(什么意思~?怎么使用啊?~!),rn如果A的一个实例,想当作B的实例使用,程序员就应写一个类型转换(classname)ref其中,rn(classname)是要转换的目的类,而ref是被转换的对象。*/rn rn rn
CreateWindow 失败 为什么啊?
源代码如下: 用EVC4.0做的 是Programming microsoft window CE 第二版得rn头文件:rn// Header file//rn// Written for the book Programming Windows CErn// Copyright (C) 2001 Douglas Boling//rn//================================================================rn// Returns number of elementsrn#define dim(x) (sizeof(x) / sizeof(x[0])) rn//----------------------------------------------------------rn// Generic defines and data typesrn//rnstruct decodeUINT // Structure associates rn UINT Code; // messages rn // with a function. rn LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);rn; rnstruct decodeCMD // Structure associates rn UINT Code; // menu IDs with a rn LRESULT (*Fxn)(HWND, WORD, HWND, WORD); // function.rn; rn//----------------------------------------------------------------------rn// Generic defines used by applicationrn#define IDC_CMDBAR 1 // Command bar ID rn//----------------------------------------------------------------------rn// Function prototypesrn//rn//int InitApp (HINSTANCE);rnHWND InitInstance (HINSTANCE, LPWSTR, int);rnint TermInstance (HINSTANCE, int); rn// Window proceduresrnLRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM); rnrn// Message handlersrnLRESULT DoCreateMain (HWND, UINT, WPARAM, LPARAM);rnLRESULT DoPaintMain (HWND, UINT, WPARAM, LPARAM);rnLRESULT DoHibernateMain (HWND, UINT, WPARAM, LPARAM);rnLRESULT DoActivateMain (HWND, UINT, WPARAM, LPARAM);rnLRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);rnrnrnrn
CopyFile()函数执行失败问题?
这样写是可以的rnvoid CFileDlgDlg::OnOK() rnrn // TODO: Add extra validation herern if (::CopyFile(".\\test.txt", ".\\test1.txt", FALSE))rn rn MessageBox("备份成功!");rn rn elsern rn MessageBox("备份<em>失败</em>!");rn rnrn CDialog::OnOK();rnrnrn然后这样写就拷贝<em>失败</em>了,这是<em>为什么</em>rnvoid CFileDlgDlg::OnOK() rnrn // TODO: Add extra validation herernrn CFileDialog fileDlg(FALSE);rnrn fileDlg.m_ofn.lpstrFilter = "Access DB(*.mdb)\0*.mdb\0\0";rn fileDlg.m_ofn.lpstrInitialDir = "Backup";rnrn if (fileDlg.DoModal() == IDOK)rn rn CString pathName = fileDlg.GetPathName();rnrn //if (::CopyFile(".\\test.txt", pathName, FALSE))rn if (::CopyFile(".\\test.txt", ".\\test1.txt", FALSE))rn rn MessageBox("备份成功!");rn rn elsern rn MessageBox("备份<em>失败</em>!");rn rn rn elsern rn return;rn rn rn CDialog::OnOK();rn
为什么报错CreateFile没有定义啊?
我在Form_Load()函数体中写了如下代码,但是编译时却提示CreateFile函数没有定义,这个是个api函数嘛,怎么会有这样的报错呢?该如何改啊?我记得好多书提到usb驱动或者应用程序编写的时候都是通过这个函数来新建一个usb设备的,怎么现在用这个函数就出错呢?rn HostControllerName$ = "\\.\HCD" & ControllerIndex&rn HostControllerHandle& = CreateFile(HostControllerName$, &H40000000, 2, 0, 3, 0, 0)rn
CreateFile()函数为什么老是返回0xffffffff啊?
我用如下代码打开一个驱动,获得一个句柄:rnhDevice = CreateFile("\\\\.\\TestDriver",rn GENERIC_READ | GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL,rn NULLrn );rn可是hDevice返回的总是0xffffffff,用GetLastError()得到的错误号是1,也就是ERROR_INVALID_FUNCTION,我的驱动部分相关代码如下:rnrnUNICODE_STRING uniNameString,uniDosNameString;//申明两个unicode字符rn........rn// 指定设备名字rnRtlInitUnicodeString(&uniNameString,L"\\Device\\TestDriver");rn......rn//创建设备rnstatus=IoCreateDevice(DriverObject,rn 0,rn &uniNameString,rn FILE_DEVICE_UNKNOWN,rn 0,rn FALSE,rn &deviceObject);rn.......rn//创建连接名rnRtlInitUnicodeString(&uniDosNameString,L"\\DosDevices\\TestDriver");rnstatus=IoCreateSymbolicLink(&uniDosNameString,&uniNameString);rnrn不知道什么原因,请哪为大虾帮个忙,解释一下,小弟在这先谢谢了rn
为什么copyfile不执行
Pic="/upload/333.jpg"rnv2="/up/"rnrnSet Fso = Server.CreateObject("Scripting.FileSystemObject")rnSet MyFile = fso.GetFile(server.MapPath(Pic))rnMyFile.CopyFile server.MapPath(v2)rn<em>为什么</em><em>copyfile</em>不执行
CreateFile调用总是失败,怎么回事?
CreateFile这个函数打开文件的时候总是<em>失败</em>,大家帮忙分析一个,这是什么原因呢?rn[code=C/C++]#includern#includern#includern#includernrnHANDLE hFile;rnHANDLE hFileMapping=NULL;rnvoid *pFileBase=NULL;rnrnint main(int argc,char **argv)rn rn if(argc!=2)rn rn printf("Usage:\n\t %s PE File\n",argv[0]);rn exit(1);rn rn rn /*********************** Map the file to memory *************************/rn hFile=CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,rn FILE_ATTRIBUTE_ARCHIVE,OPEN_EXISTING,NULL);rn if(hFile==INVALID_HANDLE_VALUE)rn rn /*printf("Open File Error.\n");*/rn printf("Open File Error\n");rn exit(2);rn rn rn hFileMapping=CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL);rn if(!hFileMapping)rn rn CloseHandle(hFile);rn perror("Create File Mapping Error\n");rn exit(3);rn rn pFileBase=MapViewOfFile(hFileMapping,FILE_MAP_READ,0,0,0);rn if(!pFileBase)rn rn CloseHandle(hFileMapping);rn CloseHandle(hFile);rn perror("Map View of File Error.\n");rn exit(4);rn rn /*********************** Map end *****************************************/rn rn rn return EXIT_SUCCESS;rnrn[/code]
USB CreateFile 失败 GetLastError() = 2
for循环到第4次时CreateFile就<em>失败</em>了,GetLastError值为2,这是什么原因啊,怎么解决。rnrnBOOL HY_Get_USBDevice(void)rnrn CHAR HCName[32];rn int HCNum;rn HANDLE hHCDev;rnrn for (HCNum = 0; HCNum < 10; HCNum++)rn rn sprintf(HCName, "\\\\.\\HCD%d", HCNum);rn hHCDev = CreateFile(HCName,rn GENERIC_WRITE,rn FILE_SHARE_WRITE,rn NULL,rn OPEN_EXISTING,rn 0,rn NULL);rn if (hHCDev == INVALID_HANDLE_VALUE)rn {rn int rst = GetLastError();rn break;rn }rn rn ......rn
使用createfile总是失败,请教
使用CreateFil("C:\tt.txt",GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);总是<em>失败</em>,向各位请教
CreateFile打开USB端口失败
CreateFile函数打开USB端口<em>失败</em>,GetLastError 返回错误为 32,表示端口被其它进程打开,但任务管理器没发现多余的软件rn同个软件在其它几台电脑上用是没问题的,CreateFile都是可以打开端口并收发数据,但有一台手提电脑上切总提示以上错误rn如果把CreateFile改为共享的方式打开端口是可以的,但是读写数据是不行的,rn请问这是什么原因呢,是系统的什么设置吗?rn谢谢
CreateFile失败的问题。请帮忙。
serverHandle = CreateFile( pipeName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING | E_FLAG_WRITE_THROUGH, NULL);rnrnif(serverHandle != INVALID_HANDLE_VALUE)rn break;rnrn程序有时正常运行。但是,又是在if语句之前就出错了。不知道是何原因。
win32串口编程中CreateFile失败
我想在win32下实现串口编程,下了一个例子照着打进去后怎么都创建<em>失败</em>。。。。各位兄弟姐妹们帮帮忙吧,谢谢各位了先rnHANDLE hCom=CreateFile((LPWSTR)("COM1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,rnFILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);rnif(hCom==(HANDLE)-1)rnrnreturn false;rnrn怎么每次都<em>失败</em>呢。。。。我就纳了个闷了。。。rn我已经用虚拟串口工具虚拟了COM1和COM2端口的连接rn也用串口调试工具测试了下,显示这两个端口都空闲,可就是连不上啊。。。。rn[img=http://hi.csdn.net/space-3555420-do-album-picid-653506.html][/img]rn[img=http://hi.csdn.net/space-3555420-do-album-picid-653505.html][/img]
请教CopyFile 函数如何解决复制失败的对话框啊?
我用CopyFile实现一个自动把光盘数据复制到硬盘的功能。rnrnCopyFile(sname.c_str(),tname.c_str(),true);rnrn如果在复制过程中,光盘被强行取出,软件会有一个出错的提示框rnrn我觉得不喜欢rnrn想要拦截这个信息自己处理,不晓得CopyFile如何如何解决复制<em>失败</em>的对话框啊
CopyFile()
我想把 D:\\test\\oo.txt文件复制到工程文件里,<em>为什么</em>复制不进去,谁能帮忙看看啊rnrnrnAnsiString pathname1,pathname2;rn pathname1 = "D:\\test\\oo.txt" ;rn pathname2=ExtractFilePath(Application->ExeName);rn CopyFile(pathname1.c_str(),pathname2.c_str() ,false);
CopyFile()
CopyFile()rn怎么用这个函数(或者其他更好的函数)把客户端的文档传输到服务器上。函数的具体应用举个例子,谢谢了!
为什么我程序的clBuildProgram()永远都build失败啊?
前面都已正确输出,到build程序的时候就<em>失败</em>。rnconst char options[] = "-cl-std=CL1.1";rn errNum = clBuildProgram(program,1,deviceIds,options,NULL,NULL);rn if(errNum == CL_SUCCESS)rn rn cout<<
copyfile
<em>copyfile</em>
copyfile()?
我希望一对话框程序(d:/myproject/my.exe)开始运行的时候把自身拷贝到系统目录(c:/winnt/system32)下,使用<em>copyfile</em>()函数,总是<em>失败</em>,请指教。谢谢
请问CopyFile怎么不起作用啊?
#include "windows.h"rn#include "stdio.h"rnrnBOOL IsPE(FILE* pfile)rn BOOL flags=FALSE;rn WORD cMZ;rn DWORD cPE,pNT;rn fseek(pfile,0,SEEK_SET);rn fread(&cMZ,sizeof(WORD),1,pfile);rn if (cMZ=0x5A4D)rn rn fseek(pfile,0x3c,0);rn fread(&pNT,sizeof(DWORD),1,pfile);rn fseek(pfile,pNT,0);rn fread(&cPE,sizeof(DWORD),1,pfile);rn if (cPE=0x00004550)rn rn flags=TRUE;rn rn elsern rn flags=FALSE;rn rn rn elsern rn flags=FALSE;rn rn fseek(pfile,0,SEEK_SET);rn return flags;rnrnrnrnint main(int argc,char* argv[])rnrn FILE* file;rn char szBak[20]="C:\_back.exe";rn if (argc!=2)rn rn printf("\tUsage:PE FileName\n");rn exit(-1);rn rn rn if ((file=fopen(argv[1],"rb"))==NULL)rn rn printf("\tError:Open File Failed!\n");rn exit(-1);rn rn if (!IsPE(file))rn rn printf("\tError:Invalid PE!\n");rn exit(-1);rn rn printf("%s\n%s\n",argv[0],argv[1]);rn if (!CopyFile(argv[1],szBak,0))rn rn printf("\tError:Backup File Failed!\n");rn exit(-1);rn rn return 1;rn rn
为什么会调试失败啊?
[img=C:\Documents and Settings\Jack Liu\桌面][/img]今天刚看了有关vector的相关信息,试着写了一个简单的程序,调试没问题,可是刚刚一运行就显示错误了。rn我程序的代码如下:rn[code=C/C++][/code]rn#include "stdafx.h"rn#include rn#include rn#include rn#include rnusing namespace std;rnrnvoid main()rnrn vector vec;rn int i;rn for(i = 0;i>vec[i];rn for(i=0;i<
为什么子窗口建立失败啊???
刚接触这东西,小白一个,<em>为什么</em>子视窗建立不了啊。。。。[code=c]#includernrnLRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);rnrnint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,PSTR szCmdLine,int iCmdShow)rnrn static TCHAR szAppName[]=TEXT("ProgramName");rn HWND hwnd;rn MSG msg;rn WNDCLASS wndclass;rnrn wndclass.style =CS_HREDRAW | CS_VREDRAW;rn wndclass.lpfnWndProc=WndProc;rn wndclass.cbClsExtra =0;rn wndclass.cbWndExtra =0;rn wndclass.hInstance =hInstance;rn wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);rn wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);rn wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);rn wndclass.lpszMenuName =NULL;rn wndclass.lpszClassName =szAppName;rnrn if(!RegisterClass(&wndclass))rn rn MessageBox(NULL,TEXT("注册视窗<em>失败</em>!"),szAppName,MB_ICONERROR);rn return 0;rn rnrn hwnd=CreateWindow(szAppName,TEXT("Program Name"),rn WS_OVERLAPPEDWINDOW,rn CW_USEDEFAULT,CW_USEDEFAULT,rn CW_USEDEFAULT,CW_USEDEFAULT,rn NULL,NULL,hInstance,NULL);rnrn ShowWindow(hwnd,iCmdShow);rn UpdateWindow(hwnd);rn rn while(GetMessage(&msg,NULL,0,0))rn rn TranslateMessage(&msg);rn DispatchMessage(&msg);rn rn rn return msg.wParam;rnrnrnrnrnLRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)rnrn HDC hdc;rn PAINTSTRUCT ps;rn HWND hChild;rn int X,Y;rn RECT rc;rnrn switch(message)rn rn case WM_CREATE:rn X=LOWORD(lParam);rn Y=HIWORD(lParam);rn hChild=CreateWindow(TEXT("CHILDWINDOW"),NULL,rn WS_CHILD | WS_VISIBLE ,rn 0,0,80,80,rn hwnd,(HMENU)1,(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),NULL);rn rn return 0;rn case WM_SIZE:rn rn return 0;rn case WM_PAINT:rn GetWindowRect(hChild,&rc);rn hdc=BeginPaint(hwnd,&ps);rn Rectangle(hdc,rc.left,rc.top,rc.right,rc.bottom);rn MoveToEx(hdc,rc.left,rc.top,NULL);rn LineTo(hdc,rc.right,rc.bottom);rn EndPaint(hwnd,&ps);rn return 0;rn case WM_DESTROY:rn PostQuitMessage(0);rn return 0;rn rn return DefWindowProc(hwnd,message,wParam,lParam);rn[/code]rnrn求解啊啊啊。。。
为什么会HOOK失败啊?
library kbHook;rnrnusesrn Windows,SysUtils;rnrnvarrn HookHandle: HHOOK;rnrnfunction change_key(iCode:integer;wParam,lParam:Longint):Longint;stdcall;rnbeginrn Result:=0;rn if iCode < 0 thenrn beginrn Result := CallNextHookEx(HookHandle , iCode, wParam, lParam);rn exit;rn end;rnrn if (lParam and $800000000)=0 thenrn beginrn if wParam=vk_end then // end键按下rn beginrn keybd_event($41,0,0,0); // 模拟按下a键rn keybd_event($41,MapVirtualKey($41,0),KEYEVENTF_KEYUP,0);rn end;rn end;rnrnend;rnrnprocedure HookOn;rnbeginrn if HookHandle<>0 then exit;rn HookHandle:=SetWindowsHookEx(WH_KEYBOARD,@change_key,hInstance,0);rnend;rnrnprocedure HookOff;rnbeginrn if HookHandle=0 then exit;rn UnHookWindowsHookEx(HookHandle);rnend;rnrnexportsrnHookOn,rnHookOff;rnrnbeginrnend.rnrn<em>为什么</em>我HookOn记事本等大多数进程的时候都是成功的, 但在进入一些游戏后却Hook不了呢? 是不是游戏利用了什么反HOOK的技术, 还是其它什么原因导致进入游戏后HOOK<em>失败</em>呢? 请高手不吝指点.
为什么我的COPYFILE函数不好使?
rnAnsiString <em>copyfile</em>=Edit1->Text;rnAnsiString copypath="D:\\" ;rnCopyFile(<em>copyfile</em>.c_str(),copy.c_str(),false);rn<em>为什么</em>烤不过去?
为什么都不见机械类的啊?
      现在机械类的在那啊?      机械加工 郁闷.............
为什么我用_mkdir和CreateFile时总是失败
_mkdirrnCreateFilern哎,我从来没有创建成功过,<em>为什么</em>呢?rnrn
为什么我在应用命名管道的时候会CreateFile会失败?
hh:=CreateFile(pchar(pipename),GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE,NiL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE or FILE_FLAG_WRITE_THROUGH,0);rnrnhh:=CreateFile(pchar(pipename),GENERIC_READ or GENERIC_WRITE, 0,null,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,null);rnrnhh:=CreateFile(Pchar(pipename),GENERIC_WRITE or GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);rnrnhh:= CreateFile(Pchar('\\.\pipe\Server'),GENERIC_WRITE or GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);rnrn哪个都不行`而且我单独测试也不行(直接用buttonClick事件执行也不行),直接hh=INVALID_HANDLE_VALUE 啥原因呢`rn
为什么都非法操作啊,没有道理啊.
我在XP下,用IE浏览网页(非本地的),打开一半就非法操作.但是本地的网页却没有问题.rnrn用MSN登陆邮箱,刚刚说"Hello"的时候就非法操作.rnrn打开"控制面班\管理工具\服务"就死机.rnrn昨天还没有发生这种问题的,昨天就是安装了一个SmartCheck(大名鼎鼎的软件,别说没有听说过啊),这不应该有问题吧,而且我在我这里的Win98下也安装了,却没有问题.rnrn另外:我从不去没有听说过的小网站,装了费尔防火墙+瑞星杀毒,都是最新版的
为什么我用CreateFile打开串口失败呢?
<em>为什么</em>用CreateFile打开<em>失败</em>,返回值是~0rnCreateFile("com2", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);rn串口时虚拟的串口,rn但是open能打开也能传输数据rnopen("com2",O_RDWR)rn
为什么CreateFile打开驱动第一次成功第二次失败
在ring3,利用CreateFile打开驱动rnm_hDevice = CreateFile (_T("\\\\.\\UHFControl"), 0, 0, NULL, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED, NULL);rn在ring0,创建设备rnrn status = IoCreateDevice (DriverObject,rn sizeof (CControlDeviceExtension*),rn &m_NameString, // No Namern m_DriverType,rn FILE_DEVICE_SECURE_OPEN,rn FALSE,rn &m_Self);rn这是一个usb hub过滤驱动,进行USB设备的重定向,结果对第一个设备进行重定向可以成功,第二个就偶尔会<em>失败</em>。通过getlasterror获得的错误代码是2,系统找不到指定的文件rn求指点,<em>为什么</em>啊?
【求助】为什么我用CreateFile打开串口总是失败
在 WIN2K + VB6 下用 CreateFile 打开串口总是, 总是返回 -1rnrn Dim lret As Longrn lret = CreateFile("COM3", GENERIC_READ Or GENERIC_WRITE, _rn 0&, 0&, OPEN_EXISTING, 0&, 0&)rnrnrn If lr = INVALID_HANDLE_VALUE Thenrn MsgBox GetAPIError, vbExclamation, "打开串口出现错误:"rn Init_COMM = 0rn Exit Functionrn End Ifrnrn然后 用 FormatMessage 返回 错误描述是: 操作已完成 ,可是返回的 lret = -1 啊, 同时在 超级终端上读取打开,关闭,通讯一切正常。rnrnCOM3 是我用 USB 虚拟出的串口设备。
惨啊,安装db2每次都失败
我是一个db2新手,最近想在自己机器上装一个玩玩,我的操作系统是xp home版,下载了db2 udb v8,安装都还好,验证安装,运行first-step,想创建一个sample数据库,提示SQL10007: Message "-567" could not be retrieved. Reason code: "5". 不懂它说啥,卸载了重装,换一个模式,还是一样错误,倒腾几次都不行,上网搜也搜不到结果,那位大虾指点一下小弟,不胜感激~~
file.close()后CopyFile函数执行失败的原因
现象:                file.close()后,系统需要把内存中内容写入硬盘,要花些时间,若此时直接去CopyFile这个file,则会<em>失败</em>。通过GetLastError()得到32,错误原因是,当前文件被占用,即正在写回磁盘。 解决方法:        休息些时间,等待系统把内存写入磁盘后,就可以。循环多次,确保复制成功。        nTime = 100;
简单问题,为什么BIND每次都失败
SOCKET s=socket(AF_INET, SOCK_STREAM, 0);rnint rc = 0;rnsockaddr_in server;rnserver.sin_port = htons(80);rnserver.sin_family = AF_INET;rnserver.sin_addr.S_un.S_addr = INADDR_ANY;rnrc = bind(s, (struct sockaddr *)&server, sizeof(server));rnrn每次RC返回都是-1,BIND<em>失败</em>,<em>为什么</em>??
为什么调用GetNetworkParams函数每次都失败
BOOL CDLGDNS::OnInitDialog() rnrn CDialog::OnInitDialog();rn rn // TODO: Add extra initialization herern FIXED_INFO* FixedInfo;rn ULONG ulOutBufLen; rn DWORD dwRetVal; rn rn FixedInfo = (FIXED_INFO*)GlobalAlloc(GPTR,sizeof(FIXED_INFO)); rn ulOutBufLen = sizeof(FIXED_INFO); rnrn char *tmpBuffer = (char *)malloc(1024);rn memset(tmpBuffer, 0, 1024);rnrn dwRetVal = GetNetworkParams(FixedInfo, &ulOutBufLen) ;rn if ( ERROR_SUCCESS != dwRetVal)rn rn m_domain.SetWindowText(_T("没有获得!"));rn m_dnsserver.SetWindowText(_T("没有获得!"));rn m_nodetype.SetWindowText(_T("没有获得!"));rn m_route.SetWindowText(_T("没有获得!"));rn m_proxy.SetWindowText(_T("没有获得!"));rn m_dns.SetWindowText(_T("没有获得!")); rn rn elsern rn m_domain.SetWindowText(FixedInfo->DomainName);rn m_dnsserver.SetWindowText(FixedInfo->DnsServerList.IpAddress.String);rn CString str1;rn str1.Format("%d",FixedInfo->NodeType);rn m_nodetype.SetWindowText(str1);rn CString str2;rn str2.Format("%d",FixedInfo->EnableRouting);rn m_route.SetWindowText(str2);rn CString str3;rn str3.Format("%d",FixedInfo->EnableProxy);rn m_proxy.SetWindowText(str3);rn CString str4;rn str4.Format("%d",FixedInfo->EnableDns);rn m_dns.SetWindowText(str4);rn rn rn //GlobalFree( FixedInfo );rn rn return TRUE; // return TRUE unless you set the focus to a controlrn // EXCEPTION: OCX Property Pages should return FALSErnrnrnrn代码如上,每次运行最后的结果都是显示的“没有获得”,怎么回事啊?
为什么美国互联网公司在中国市场都失败了?
几乎无一例外,美国互联网公司在中国市场都<em>失败</em>。而与此同时,中国的三大公司阿里巴巴、百度和腾讯则从中受益。这三大公司总市值达到约1500亿美元。 许多人将美国公司<em>失败</em>的原因归于政府的监管和袒护,尽管这一点是这些公司<em>失败</em>的原因之一,但更主要的是他们自身原因: 1、过于短视行为。中国是一个庞大的市场,要求更多的耐心。美国公司常常根据盈利状况对全球市场进行选择,往往在经济低迷时撤出地区市场。但
为什么我装了多次的mysql都失败了?~!
我在的机器上安装(Win 2000 pro)rnAPACHE+PHP+MYSQLrn相应的版本是 apache_2.0.48,php5,mysql-4.0.16rn前两者整合成功,可是装了多怎么都是装不上mysql,总是红灯rnrn请指教!rnrn能否可以提供一些安装mysql的详细的安装攻略,谢谢!
为什么我用CopyFile拷贝覆盖system32下面的文件总是失败啊?返回0唉!!求教!!
<em>为什么</em>我用CopyFile拷贝一个文件去覆盖system32下面的同名文件总是<em>失败</em>啊?返回0唉!!求教!!
CreateFile
HANDLE hFile; rn rn hFile = CreateFile(filename, // open MYFILE.TXT rn GENERIC_READ, // open for reading rn FILE_SHARE_READ, // share for reading rn NULL, // no security rn OPEN_EXISTING, // existing file only rn FILE_ATTRIBUTE_NORMAL, // normal file rn NULL); rn rn 这是msdn上的例子,先用着好好的,创建文件也成功了,后来突然一直编译错误:rn error C2660: 'CreateFileA' : function does not take 7 parametersrn 但在MSDN里就是7个参数,请问有知道什么原因的么。
CreateFile为什么返回参数错误?
[code=C/C++]rnCString strLastError;rn CString strFilePath = _T("\\windows\\wz.txt");rn HANDLE hIDFile = CreateFile(strFilePath,GENERIC_READ,FILE_SHARE_READ,NULL,rn OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);rn if (INVALID_HANDLE_VALUE == hIDFile)rn rn strLastError.Format(_T("%s打开<em>失败</em>,错误信息:%d"),strFilePath,GetLastError());rn AfxMessageBox(strLastError);rn return ;rn rn[/code]rn读取已经存在的文件wz.txt,<em>为什么</em>CreateFile返回了参数错误?
为什么CreateFile无法打开设备
[code=C/C++]rnvoid Cdriver_TestDlg::OnBnClickedButton4()rn rn HANDLE handle = ::CreateFile("\\\\.\\MyDeviceName",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);rn if(handle == INVALID_HANDLE_VALUE)rn MessageBox("打开设备出错");rn CloseHandle(handle);rn rn[/code]rn一直提示打开设备出错.....请大大们帮我看下哪里写错了...rn驱动文件完整代码:rn[code=C/C++]rn#include rn#define NTSTRSAFE_LIBrn#include rnrn#define COM_DRIVER_NAME L"\\Device\\Serial0" //要绑定的设备名rn//延时用的rn#define DELAY_ONE_MICROSECOND (-10)rn#define DELAY_ONE_MILLISECOND (DELAY_ONE_MICROSECOND*1000)rn#define DELAY_ONE_SECOND (DELAY_ONE_MILLISECOND*1000)rnrnPDEVICE_OBJECT s_fltobj=NULL; //全局指针rnPDEVICE_OBJECT s_nextobj=NULL; //全局指针rnPDEVICE_OBJECT pCommunicate=NULL; //全局指针rnUNICODE_STRING devicename; //定义一个字符串rnUNICODE_STRING symboliclinkname; //定义一个字符串rnvoid ccpUnload(PDRIVER_OBJECT drv); //动态卸载函数rnNTSTATUS ccpAttachAllComs(PDRIVER_OBJECT driver); //绑定设备函数rnNTSTATUS ccpDispatch(PDEVICE_OBJECT device,PIRP irp); //自定义IRP分发函数rnNTSTATUS fengReadComplete(PDEVICE_OBJECT DeviectObject,PIRP Irp,PVOID Context); //IRP_MJ_READ回调函数rnNTSTATUS CreateDevices(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath); //创建设备用于同ring3应用程序通信rnrnNTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) //所有的驱动都是这个入口函数跟c语言的main函数一样rn rn NTSTATUS status; //定义返回状态数据类型rn size_t i;rn status = CreateDevices(driver,reg_path);rn if (status==STATUS_SUCCESS)rn rn for(i=0;iMajorFunction[i] = ccpDispatch; //所有的分发函数都进入ccpDispatch这个函数里面去rn rn driver->DriverUnload = ccpUnload; //支持动态卸载(=号后面是卸载函数)rn ccpAttachAllComs(driver); //绑定设备rn rn return STATUS_SUCCESS; //返回成功(STATUS_SUCCESS=成功的意思)rn rnNTSTATUS CreateDevices(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)rn //创建设备用于同ring3应用程序通信rn NTSTATUS status;rn RtlInitUnicodeString(&devicename,L"\\Device\\MyDevice"); //初始化设备名称rn RtlInitUnicodeString(&symboliclinkname,L"\\??\\MyDeviceName"); //初始化符号连接名称rn status = IoCreateDevice(DriverObject,0,&devicename,FILE_DEVICE_UNKNOWN,0,FALSE,&pCommunicate); //生成设备rn if (status != STATUS_SUCCESS) //如果没有生成设备成功就返回rn return status;rn IoCreateSymbolicLink(&symboliclinkname,&devicename);//符号链接名称//设备名称rn pCommunicate->Flags |= DO_BUFFERED_IO;rn return status;rn rnvoid ccpUnload(PDRIVER_OBJECT drv) //动态卸载函数rn rn LARGE_INTEGER interval;rn UNICODE_STRING uniNtNameString; //定义一个字符串rn RtlInitUnicodeString(&uniNtNameString, COM_DRIVER_NAME); // 初始化一个字符串(就是COM驱动的名字)rn IoDetachDevice(s_nextobj); // 首先解除绑定rn interval.QuadPart = (2*1000 * DELAY_ONE_MILLISECOND); // 睡眠时间(2秒)rn KeDelayExecutionThread(KernelMode,FALSE,&interval); //等待所有irp处理结束rn IoDeleteDevice(s_fltobj); // 删除设备rn IoDeleteDevice(pCommunicate); // 删除设备rn rnNTSTATUS ccpAttachAllComs(PDRIVER_OBJECT driver) //绑定设备函数rn rn NTSTATUS status; //定义返回状态数据类型rn PFILE_OBJECT fileobj = NULL; //定义一个设备的文件对象指针rn PDEVICE_OBJECT devobj = NULL; //定义一个设备对象指针rn UNICODE_STRING uniNtNameString; //定义一个字符串rn RtlInitUnicodeString(&uniNtNameString, COM_DRIVER_NAME); // 初始化一个字符串(就是COM驱动的名字)rnrn status=IoGetDeviceObjectPointer(&uniNtNameString, FILE_ALL_ACCESS, &fileobj, &devobj); //根据设备名字获取设备对象rn if(status == STATUS_SUCCESS) //如果获取设备对象成功rn ObDereferenceObject(fileobj); //就取消设备的文件对象引用(因为过滤串口不需要文件对象)rn status = IoCreateDevice(driver,0,NULL,devobj->DeviceType,0,FALSE,&s_fltobj); //生成设备rn if (status != STATUS_SUCCESS) //如果没有生成设备就返回rn return status;rn // 拷贝重要标志位。rn if(devobj->Flags & DO_BUFFERED_IO)rn (s_fltobj)->Flags |= DO_BUFFERED_IO;rn if(devobj->Flags & DO_DIRECT_IO)rn (s_fltobj)->Flags |= DO_DIRECT_IO;rn if(devobj->Flags & DO_BUFFERED_IO)rn (s_fltobj)->Flags |= DO_BUFFERED_IO;rn if(devobj->Characteristics & FILE_DEVICE_SECURE_OPEN)rn (s_fltobj)->Characteristics |= FILE_DEVICE_SECURE_OPEN;rn (s_fltobj)->Flags |= DO_POWER_PAGABLE;rn s_nextobj = IoAttachDeviceToDeviceStack(s_fltobj,devobj); //绑定一个设备到另一个设备上rn if (s_nextobj == NULL)rn rn // 如果绑定<em>失败</em>了,销毁设备,重新来过。rn IoDeleteDevice(s_fltobj);rn s_fltobj = NULL;rn return STATUS_UNSUCCESSFUL;rn rn (s_fltobj)->Flags = (s_fltobj)->Flags & ~DO_DEVICE_INITIALIZING; //设置这个设备已经启动rn return STATUS_SUCCESS;rn rnNTSTATUS ccpDispatch(PDEVICE_OBJECT device,PIRP irp) //自定义IRP分发函数rn rn PIO_STACK_LOCATION irpsp = IoGetCurrentIrpStackLocation(irp); //获取当前栈空间rn NTSTATUS status;rn ULONG i;rn if(s_fltobj== device)rn rn if(irpsp->MajorFunction == IRP_MJ_POWER)rn rn //如果是电源直接发送,然后返回说已经被处理了rn PoStartNextPowerIrp(irp);rn IoSkipCurrentIrpStackLocation(irp);rn return PoCallDriver(s_nextobj,irp);rn rn if(irpsp->MajorFunction == IRP_MJ_WRITE)rn rn ULONG len = irpsp->Parameters.Write.Length; //获取写入数据的长度rn PUCHAR buf = (PUCHAR)irp->AssociatedIrp.SystemBuffer; //取得系统缓冲区数据rn for(i=0;iMajorFunction == IRP_MJ_READ)rn rn //因为读的是需要完成后才能得到,所以用回调函数来获取rn IoCopyCurrentIrpStackLocationToNext(irp);rn IoSetCompletionRoutine(irp, fengReadComplete, device, TRUE, TRUE, TRUE);rn return IoCallDriver(s_nextobj,irp);rn rn //其它请求直接下发(不禁止也不修改)rn IoSkipCurrentIrpStackLocation(irp);rn return IoCallDriver(s_nextobj,irp);rn rn // 如果根本就不在被绑定的设备中,那是有问题的,直接返回参数错误。rn irp->IoStatus.Information = 0;rn irp->IoStatus.Status = STATUS_INVALID_PARAMETER;rn IoCompleteRequest(irp,IO_NO_INCREMENT);rn return STATUS_SUCCESS; rn rnrnNTSTATUS fengReadComplete(PDEVICE_OBJECT DeviectObject,PIRP Irp,PVOID Context) //IRP_MJ_READ回调函数rn rn PIO_STACK_LOCATION IrpSp;rn ULONG i;rn IrpSp = IoGetCurrentIrpStackLocation(Irp);rn if(NT_SUCCESS( Irp->IoStatus.Status)) //读成功才处理rn rn PUCHAR buf = (PUCHAR)Irp->AssociatedIrp.SystemBuffer; //取得系统缓冲区数据rn for(i=0; iIoStatus.Information; i++)rn rn DbgPrint("%02X, ", buf[i]);rn rn rn if( Irp->PendingReturned)rn IoMarkIrpPending( Irp);rn return Irp->IoStatus.Status;rn rn[/code]
Createfile
win CE 用Createfile 初始化的设备能用CloseHandle回收吗?rnrn好象会出错?
createfile??
我不太懂英文,谁能给我讲一下CREATEFILE这个函数呀??太谢谢了!!
Win7下CreateFile创建文件失败错误代码5
在系统目录下:如C:\Program Files\ 目录,创建文件<em>失败</em>, 错误代码是5,表示拒绝访问。 rn知道是应该权限问题,但我就想用普通用户运行,并使它能创建文件。是怎么做。有没有好办法!!
新手求教CreateFile()打开失败,返回5
以前没有接触过windows的API,因为程序有用到,所以从网上复制了一个函数rnrn系统是win7,用工具激活为正版,VS2013社区版,程序启动方式为“右键-》已管理员身份运行”rnrn函数功能是判断某个盘符是否为U盘还是移动硬盘(需要把这两个和本地硬盘区别),其中有段代码用到了CreateFile(),问题也是出现在这里,出错,返回5rnrn[code=c]rn WCHAR newDrive[256]; //改函数传递进来的参数是CHAR* drive,这里转换为WCHARrn memset(newDrive, 0, sizeof(newDrive));rn MultiByteToWideChar(CP_ACP, 0, drive, strlen(drive)+1, newDrive, sizeof(newDrive)/sizeof(newDrive[0]));rn _wsetlocale(LC_ALL, newDrive);rn wprintf(L"%s", newDrive); //测试下转换是否正确,这里控制台显示结果"C:"而不是"C:/"rn //----rn hDevice = CreateFile(rn newDrive, // drive to openrn GENERIC_READ | GENERIC_WRITE, // access to the drivern FILE_SHARE_READ | FILE_SHARE_WRITE, //share modern NULL, // default security attributesrn OPEN_EXISTING, // dispositionrn 0, // file attributesrn NULL // do not copy file attributern );rn if (hDevice == INVALID_HANDLE_VALUE) // cannot open the drivern rn fprintf(stderr, "CreateFile() Error: %ld\n", GetLastError()); //显示无法打开,错误5rn return DWORD(-1);rn [/code]rnrn我想问下<em>为什么</em>不能打开本地的C盘或者D盘或者E盘?
CreateFile ReadFile 读取图片文件失败
通过CreateFile、ReadFile 读取图片文件,用于模拟网页POST上传至网上空间。但是通过ReadFile函数获得字符数组时只有一个符号‘?’,说明读取错误。但是用同样的方法,[b]读取test.txt文本文件是正确的。[/b]rn [color=#0000FF]请问不能通过CreateFile、ReadFile 获得图片文件数据吗?我的最终目的将图片数据先读到内存中,然后再模拟网页POST将图片上传至网上空间。[/color]rnrn以下为读取jpg图片文件代码:rnrn HANDLE hFile; rn int dwFileSize;rn hFile=CreateFile("F:\\1.jpg",GENERIC_READ,0, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); rn dwFileSize=GetFileSize(hFile,NULL); rn if (hFile == INVALID_HANDLE_VALUE) rn rn AfxMessageBox("文件打开错误");rn return ;rn rn char *ansiPtr;rn ansiPtr=new char[dwFileSize + 1];rn ZeroMemory(ansiPtr,dwFileSize + 1);rnrn if (ReadFile(hFile, ansiPtr, dwFileSize, &dwBytesRead, NULL)) rn rn ansiPtr[dwFileSize]='\0';rn rnrn
为什么样下面总是CreateFile失败
HANDLE hCom; //global handlern hCom=CreateFile("COM2",GENERIC_READ && GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);rn这样总是打不开,请问这是<em>为什么</em>?
createfile()打开串口失败,求解答
hCom = CreateFile("COM1", //打开串口1rn GENERIC_READ | GENERIC_WRITE, //允许读和写操作rn 0, //独占方式rn NULL,rn OPEN_EXISTING, //打开一个存在的串口rn FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //异步方式打开rn NULLrn );rnCreateFile()的返回值为INVALID_HANDLE_VALUE。rn用GetLastError()得到返回值为2,系统找不到指定路径。rnrn这个,要怎么改?rn谢谢大家。
在COM 中使用createfile 失败的原因?
我在COM中调用 CREATEFILE 结果返回 INVALID_HANDLE_VALUE,从而无法进行下一步的操作。rnrn是什么原因???rnrnm_hFile = CreateFile(pszFilename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);rn结果 (m_hFile == INVALID_HANDLE_VALUE)
请教调用CreateFile打开分区失败的原因。
我在vs2008中编译一个测试代码,打开一个分区,没有问题!rnrn测试通过后,我在vs2008里建立了一个QT工程,然后把测试代码嵌入里面,希望可以在图形界面中选择需要打开的分区,编译通过,但死活都是打开分区<em>失败</em>!rnrn打开分区的代码如下:rn_TCHAR volumePath[7];rn_sntprintf(volumePath, 6, _T("\\\\.\\%c:"), volume);rnvolumePath[6] = _T('\0');rnhVolume = CreateFile((LPCTSTR )volumePath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,rn NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);rnrnrn查找返回的错误代码显示的错误是:rn刚开始的错误码是2:意思是找不到打开的文件rn换了好几个分区来打开时变成了这个错误:@err,hr 0x0000007b 文件名、目录名或卷标语法不正确。 unsigned longrnvolumePath的值显示是:\\.\\C:rn_TCHAR的大小是1rn不知道qt对这种反斜杠的文件名:\\.\\C: 有没有敏感,以致打不开分区。rnrn望知道错误的大侠指点
windows mobile win 32 C++用CreateFile总是失败为什么啊?
HANDLE file;rnrnfile=CreateFile(_T("C:\\11.txt"),GENERIC_READ | GENERIC_WRITE,rn FILE_SHARE_READ,NULL,CREATE_ALWAYS,rn FILE_ATTRIBUTE_NORMAL,NULL);rn rn if(file==INVALID_HANDLE_VALUE)rn rnrn MessageBox(NULL,L"文件打开<em>失败</em>",L"哈哈",MB_OK); rn
DeviceIoControl的时候createfile失败GetLastError=5
我想在win32下检测PC上的可移动磁盘,参照http://www.freeors.com/bbs/viewthread.php?tid=506做了一下rn可是实现的时候有问题,就是<em>createfile</em><em>失败</em>GetLastError=5(拒绝访问,我手动建立文件是没有问题的),谁给分析下是什么原因造成的?rn参见下面代码rn[code=C/C++] rnLPCTSTR sDrivePath = s;rnUINT DiskType =GetDriveType(sDrivePath); rnswitch(DiskType) rn rn case DRIVE_NO_ROOT_DIR: rn return; rn case DRIVE_REMOVABLE:rn rn strSDDirver = sDrivePath;rn sprintf(chDeviceName, "\\\\.\\%c:", 'G');//SD卡所在盘符rn hDevice = CreateFilern (chDeviceName, rn GENERIC_READ | GENERIC_WRITE,rn FILE_SHARE_READ | FILE_SHARE_WRITE,rn NULL, rn OPEN_EXISTING,rn NULL,rn NULL); rn int i = GetLastError();//[b]错误码 5[/b]rnrnrnif (hDevice != INVALID_HANDLE_VALUE) rn rn if (DeviceIoControl( rn hDevice, rn IOCTL_STORAGE_CHECK_VERIFY, rn NULL, rn 0, rn NULL, rn 0, rn &cbBytesAct, rn NULL))rn rn....rnrn...rnrn[/code]
wince usb 数据采集程序 CreateFile 失败
开发一个 wince usb 数据采集程序,使用<em>createfile</em>打开usb设备<em>失败</em>。rnrn此设备使用标准的USB设备提供了温度采集功能,在XP系统上一切正常。使用了CreateFile 、ReadFile进行数据读取。移植到WinCe系统,始终无法打开USB设备。有做过的吗 帮忙解释下。rnrn代码如下:rnHANDLE hDriver = CreateFile (rn _T("HID1:"),//USBSERIAL_NAMErn GENERIC_READ | GENERIC_WRITE,rn 0,rn NULL, rn OPEN_EXISTING, 0, rn NULL);rn if (hDriver == INVALID_HANDLE_VALUE)rn rn rn return 0;rn
【急】vs2005 串口 createFile 函数创建失败???
hCom=CreateFile(_T("COM1"),rn GENERIC_READ|GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,rn NULL);rnrnrn怎么改???rn用的是UNICODE
CreateFile 访问磁盘失败,错误代码5,拒绝访问
CreateFile(rn L"d:", rn GENERIC_READ, rn FILE_SHARE_READ, rn NULL, rn OPEN_EXISTING, rn FILE_FLAG_NO_BUFFERING, rn NULL);rnrn关了UAC,并且使用管理员权限也没用rn这个是什么原因,真的一点机会都不给?
CreateFile打开串口失败(com10以上)
// get a handle to the port m_hComm = CreateFile(_T(&amp;quot;\\.\COM11&amp;quot;), // communication port string (COMX) GENERIC_READ | GENERIC_WRITE, // read/write types 0, // comm devices must be opened wit...
WINCE6,串口打开失败,CreateFile()返回-1
环境 VS2008,WINCE6,WINCE系统里有“COM1”,我用串口调试终端能打开”COM1“并且能发送与接收数据rn为了怕搞错串口名称,我干脆打开COM1-COM5,并且跟踪 m_hComm的值,发现返回的全部是 -1(0xffffffff), 这是我建的一个WINCE测试工程,就在下面这个函数里添加了如下代码,不知为何CreateFile()会返回 -1,请高手指定一二,谢谢rnrnBOOL CWinceUartTestDlg::OnInitDialog()rnrn CDialog::OnInitDialog();rnrn // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动rn // 执行此操作rn SetIcon(m_hIcon, TRUE); // 设置大图标rn SetIcon(m_hIcon, FALSE); // 设置小图标rnrn // TODO: 在此添加额外的初始化代码rn HANDLE m_hComm=0;rn m_hComm =CreateFile(L"COM0", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM1", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM2", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM3", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM4", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM5", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm == -1)rn MessageBox(L"COM0-COM5 Open Error!");rn elsern MessageBox(L"COM0-COM5 Open Succcess!");rnrn return TRUE; // 除非将焦点设置到控件,否则返回 TRUErn
CreateFile失败 GetLastError()返回5 是什么原因
我这个工程是有一个主程序 然后调用很多的静态库 某一个静态库中有CreateFile()rnrncmd控制台的标签显示的是 管理员: C:\Window\system32\cmd.exernUAC执行文件也改成了 requireAdministratorrnrn但是CreateFile依然<em>失败</em> GetLastError()返回5rnrn编程小白 还有很多不懂的地方 还希望大家能谅解 也同时希望大神快来指导我一下 到底是什么原因
简单驱动,在用户态调用CreateFile()时失败
最近在尝试自己写个驱动程序,但是在用户态调用CreateFile()时总是<em>失败</em>,返回0xffffffff,请各路高手帮我找找问题所在,谢谢了。 rnrn// 驱动代码代码如下 rnrnrnC/C++ codern//rn// HelloWorldDrv.crn//rn#include "ntstatus.h"rn#include "ntddk.h"rn#include rn#include rn#define true 1rn#define false 0rn// const variablesrnconst WCHAR deviceNameBuffer [] = L"\\Device\\HelloWorldDevice";rnconst WCHAR dosDeviceNameBuffer [] = L"\\DosDevice\\HelloWorldDevice";rn// global pointer to our device objectrnPDEVICE_OBJECT g_helloWorldDevice;rn// This is our unload functionrnvoid OnUnload ( IN PDRIVER_OBJECT driverObject )rnrn UNICODE_STRING strDosDeviceNameUnicodeString;rn DbgPrint ( "OnUnload() called!!!!!!\n" );rn RtlInitUnicodeString ( &strDosDeviceNameUnicodeString, dosDeviceNameBuffer );rn // delete symbolic linkrn IoDeleteSymbolicLink ( &strDosDeviceNameUnicodeString );rn // delete device rn IoDeleteDevice ( driverObject->DeviceObject );rnrnrnNTSTATUS MyOpen ( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIRP )rnrn DbgPrint ( "MyOpen() called!!!\n" );rn return STATUS_SUCCESS;rn rnrnNTSTATUS MyClose ( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIRP )rnrn DbgPrint ( "MyClose() called!!!\n" );rn return STATUS_SUCCESS;rnrnrnNTSTATUS MyRead ( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIRP )rnrn NTSTATUS ntStatus = STATUS_SUCCESS; rn DbgPrint ( "MyRead() called!!!!!!\n" ); rn return ntStatus;rnrnrnNTSTATUS MyWrite ( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIRP )rnrn NTSTATUS ntStatus = STATUS_SUCCESS; rn DbgPrint ( "MyWrite() called!!!!!!\n" ); rn return ntStatus;rnrnrn// Entry functionrnNTSTATUS DriverEntry ( IN PDRIVER_OBJECT pDriverObject, rn IN PUNICODE_STRING theRegistryPath )rnrn //NTSTATUS ntStatus;rn UNICODE_STRING strDeviceNameUnicodeString;rn UNICODE_STRING strDosDeviceNameUnicodeString;rn NTSTATUS ntStatus;rn rn DbgPrint ( "DriverEntry() called!!!!!!\n" );rn rn // set up our namern RtlInitUnicodeString ( &strDeviceNameUnicodeString, deviceNameBuffer );rn RtlInitUnicodeString ( &strDosDeviceNameUnicodeString, dosDeviceNameBuffer ); rn // Initialize the pointer to the unload function in the driverObjectrn pDriverObject->DriverUnload = OnUnload; rn // set functionsrn pDriverObject->MajorFunction [ IRP_MJ_CREATE ] = MyOpen;rn pDriverObject->MajorFunction [ IRP_MJ_CLOSE ] = MyClose;rn pDriverObject->MajorFunction [ IRP_MJ_READ ] = MyRead;rn pDriverObject->MajorFunction [ IRP_MJ_WRITE ] = MyWrite; rn // create device rn ntStatus = IoCreateDevice ( pDriverObject, 0,// for driver extension &strDeviceNameUnicodeString, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, false,rn &g_helloWorldDevice ); rn if ( NT_SUCCESS( ntStatus ) )rn rn // create a symbolic link to the devicern IoCreateSymbolicLink ( & strDosDeviceNameUnicodeString, strDeviceNameUnicodeString );rn rn return STATUS_SUCCESS;rnrnrnrn//rn// SOURCESrn//rnTARGETNAME=HelloWorldDrvrnTARGETPATH=OBJrnTARGETTYPE=DRIVERrnSOURCES=HelloWorldDrv.crnrnrn//rn// MAKEFILErn//rn!INCLUDE $(NTMAKEENV)\makefile.defrnrnrn//rn// HelloWorldApp.crn//rn#include rn#include rnrnint main()rnrnrn HANDLE hFile;rn DWORD dwReturn;rnrn hFile = CreateFile("\\\\.\\HelloWorldDevice", rn GENERIC_WRITE, rn 0, rn NULL, rn OPEN_EXISTING, rn FILE_ATTRIBUTE_NORMAL,rn NULL);rnrn if( hFile == INVALID_HANDLE_VALUE )rn rn printf("create file failed!!!\n");rn rn elsern rn CloseHandle(hFile);rn rn return 0;rnrnrnrn
失败啊~~真失败!!
满怀信心的去干每一件事,可是<em>为什么</em>很多事自己都没做好!!觉得自己太<em>失败</em>了~~~
啊!救命啊!weblogic8.1安装为什么失败啊?
接压缩后说“could not locate the lancher command”
CreateFile 打开文件重新写入失败,但GetlastError没有失败提示,
我有一颗双亲树,顺序数组存放,要保存到文件里面。每次树被更新之后就要写到文件里面去,rnrn可是下面这个函数运行没有错误,但文件总是没有得到更新rnrn[code=c]rnint PtTree::SaveToFile(LPCTSTR Filename)rnrn// ::DeleteFile(Filename);rn//情况内容,rn HANDLE hIndex = ::CreateFile(rn Filenamern ,GENERIC_WRITErn ,0rn ,NULLrn ,TRUNCATE_EXISTINGrn ,FILE_ATTRIBUTE_NORMALrn ,NULL);rnrn//打开成功但就是没有把文件更新rn if( INVALID_HANDLE_VALUE == hIndex )rn rn ShowError();rn return 0;rn rn DWORD dwNumberOfBytes;rnrn ::SetFilePointer( hIndex, 0, 0 , FILE_BEGIN );rnrn //写入节点个数rn if(0 == WriteFile( hIndex, (LPVOID) &NodeCount, sizeof(NodeCount), &dwNumberOfBytes, NULL ) )rn rn ShowError();rn CloseHandle(hIndex);rn return 0 ;rn rnrn //写入叶子节点个数rn if(0 == WriteFile( hIndex, (LPVOID)&LeafCount, sizeof(LeafCount), &dwNumberOfBytes, NULL ) )rn rn ShowError();rn CloseHandle(hIndex);rn return 0 ;rn rnrn//写入顺序树信息 ,这里在单步的时候可以看到dwNumberOfBytes为500,但文件的大小还是原来的248Brn if(NodeCount && 0 == WriteFile( hIndex, (LPVOID)( &node), (NodeCount) * sizeof(PtNode), &dwNumberOfBytes, NULL ) )rn rn ShowError();rn CloseHandle(hIndex);rn return 0 ;rn rnrn //写入叶子数组rn if(LeafCount && 0 == WriteFile( hIndex, (LPVOID)(&Leaf), (LeafCount) * sizeof(int), &dwNumberOfBytes, NULL ) )rn rn ShowError();rn CloseHandle(hIndex);rn return 0 ;rn rn rn CloseHandle(hIndex);rnrn return 1;rnrn[/code]
用CopyFile()为什么会出现内存不足呢?
在一个While语句中用CopyFile()把一目录下的文件(很多)复制到另一个目录下,复制到中途系统弹出“内存不足”的消息框。rnrn我用Win2k的任务管理器查看,的确发现内存占用很多。rnrn在以下是while语句:rn while(::FindNextFile (hSour,&SourFind))rn rn while(::PeekMessage(&Msg,this->m_hWnd,NULL,NULL,PM_NOREMOVE))rn rn ::GetMessage(&Msg,this->m_hWnd,NULL,NULL);rn ::TranslateMessage(&Msg);rn ::DispatchMessage(&Msg);rn rn if(this->m_bAbort)rn rn m_bExecuting=FALSE;rn this->m_wndProgress.SetPos(0);rn csWndText.LoadString(IDS_START);rn this->GetDlgItem(IDC_EXECUTE)->SetWindowText(csWndText);rn return;rn rn if(SourFind.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)rn continue;rn elsern rn CString csFilePathName=m_csTargetDir+'\\'+SourFind.cFileName;rn CString csSourFile=m_csSourceDir+'\\'+SourFind.cFileName;rn if(!::CopyFile (csSourFile,csFilePathName,FALSE))rn rn CString csMsg;rn DWORD dwError=::GetLastError ();rn csWndText.LoadString(IDS_START);rn this->GetDlgItem(IDC_EXECUTE)->SetWindowText(csWndText);rn if(dwError==ERROR_DISK_FULL)rn csMsg.LoadString(IDS_MSG_DISK_FULL);rn elsern csMsg.FormatMessage(dwError);rn this->m_wndProgress.SetPos(0);rn this->m_bExecuting=FALSE;rn ::AfxMessageBox (csMsg);rn return ;rn rn //nTotalSize+=SourFind.nFileSizeLow;rn //this->m_wndProgress.SetPos(nTotalSize);rn rn
!!!!!!!!!!!!!为什么我没办法使用copyfile函数呀!!!!!!!!!!!!!!
!!!!!!!!!!!!!<em>为什么</em>我没办法使用<em>copyfile</em>函数呀!!!!!!!!!!!!!!
net8+本地连接+拨号连接 为什么失败啊?
我要连接两个数据库:一个通过本地连接;一个通过拨号连接。但是总是不能同时运行成功!总有一个连接超时?但是单独测试没问题的! <em>为什么</em><em>失败</em>啊?那位高手指点一下啊!!!
这个变量为什么传递失败
rnrnrnrn提交成功后rnrs1("mpic")=news_contentrnrs1("title")=titlernrs1("content")=contentrnrn数据库里字段 mpic title content 都是空的rn<em>为什么</em>么没内容那rn高手指点下啊 在线等!rnrn就39分拉 高手别闲少!谢谢啦!
发送send函数失败为什么
void CChatDlg::FileRead(SOCKET s,CString name)//参数分别是套接字和文件名rnrn CFile file;rn int sign=0;rn file.Open(name,CFile::modeRead);//以只读的模式打开文件rn DWORD length=file.GetLength();//获取文件长度rn rn //char filebuf[];rn char *filebuf=new char[1024];//1MBrn char error[10];rn rn while(length)rn rn DWORD n=file.ReadHuge(filebuf,1023);rn length-=n;rn filebuf[n]='f';rn if(send(s,filebuf,n+1,0)==SOCKET_ERROR)rn rn //获取错误代码rn int errorcode=WSAGetLastError();rn itoa(errorcode,error,10);rn rn MessageBox(error);//rn sign=1;rn break;rn rn rn rn rn delete [] filebuf;rn filebuf=NULL;rn file.Close();rn if(sign==0)MessageBox("发送完毕");rnrnrn可以看到上面每次读1023个字节并发送,一个3MB的文件,当发送了33次,后在来发送就<em>失败</em>rn<em>为什么</em>rn返回的错误代码10035;rn查阅得知“无法立即完成一个非阻挡性套接字操作”rnrn我的理解是前33次拷贝了1023个字节到缓冲区,这个时候已经满了。rn怎么知道缓冲区已经满了,怎么处理rnrn我选择的是异步模型来编程的WSAAsyncSelect()rn发送大型文件应该怎么处理rn
取网络机器名失败为什么啊?SHGetSpecialFolderLocation
这是C++BUILDER中的代码,你们知道可以写一段DELPHI的给我看。谢谢rn LPITEMIDLIST DesktopPidl;rn char DesktopDir[MAX_PATH];rn int nFolder;rn nFolder = CSIDL_NETWORK;rn SHGetSpecialFolderLocation(NULL,nFolder,&DesktopPidl); 《---此处调用返回FLASErn SHGetPathFromIDList(DesktopPidl, DesktopDir);rn Edit1 ->Text =AnsiString(DesktopDir);rn我那里错了?<em>为什么</em>打不开网路机器的列表?
为什么pop3服务老是初始化失败啊?
自己给自己发的信受不到
c++中嵌入汇编失败。。。为什么啊。。。
class CAsmrnrnpublic:rn void Hello(void);rnprivate:rn int x;rn;rnrnrnvoid CAsm::Hello (void)rnrnrn _asmrn rn mov ecx,this;rn mov eax,[ecx]this.xrn mov [ecx]this.x,ebxrn rnrnrnrn报错信息:rn unexpected end of file while looking for precompiled header directivernrnrnrnc++中插入汇编<em>失败</em>。。。<em>为什么</em>啊。。。rn
loadrunner.pdf下载
loadrunner.pdf 很好的使用指南 相关下载链接:[url=//download.csdn.net/download/xq20091012/2077640?utm_source=bbsseo]//download.csdn.net/download/xq20091012/2077640?utm_source=bbsseo[/url]
c++课程设计(矩阵)下载
1 矩阵的来源 1 2 课题来源 1 3 课程设计意义及目标 2 4 矩阵操作 2 5运行与测试 5 相关下载链接:[url=//download.csdn.net/download/shuibinxuan/3341361?utm_source=bbsseo]//download.csdn.net/download/shuibinxuan/3341361?utm_source=bbsseo[/url]
Java基础知识笔记下载
Java基础知识笔记Java基础知识笔记Java基础知识笔记 相关下载链接:[url=//download.csdn.net/download/fxy701/3807767?utm_source=bbsseo]//download.csdn.net/download/fxy701/3807767?utm_source=bbsseo[/url]
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图
我们是很有底线的