getlasterror

CreateFile() Serial Communication Issue [duplicate]

爱⌒轻易说出口 提交于 2020-12-03 07:41:49
问题 This question already has an answer here : How to open COMXX files(serial port) (1 answer) Closed 5 years ago . I am trying to do some serial communication through my usb port (named COM15), and I am getting an error. This is the code where the error is occurring: HANDLE myPortHandle = CreateFile("COM15", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (myPortHandle == INVALID_HANDLE_VALUE) { DWORD lastError = GetLastError(); cout<<"ERROR HERE! = "<<lastError<<endl; } Every

PostThreadMessage

為{幸葍}努か 提交于 2020-03-23 02:06:06
3 月,跳不动了?>>> 函数功能:该函数将一个消息放入 (寄送)到指定线程的消息队列里,不等待线程处理消息就返回。 函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam); 参数 idThread:其消息将被寄送的线程的 线程标识符。如果线程没有消息队列,此函数将失败。当线程第一次调用一个Win 32 USER或GDI函数时,系统创建线程的消息队列。要得到更多的信息,参见备注。 Msg:指定将被寄送的消息的类型。 wParam:指定附加的消息特定信息。 IParam:指定附加的消息特定信息。 返回值:如果函数调用成功,返回非零值。如 果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。如果idThread不是一个有效的线程标识符或由 idThread确定的线程没有消息队 列,GetLastError返回 ERROR_INVALID_THREAD。 备注:消息将寄送到的线程必须创建消息队 列,否则调用PostThreadMessage会失败。用下列方法之一来处理这种情况: 调用PostThreadMessage。 如果失败,调用Sleep,再调用PostThreadMessage,反复执行,直到PostThreadMessage成功。

[转帖]Windows GetLastError 错误号 含义说明

两盒软妹~` 提交于 2020-01-09 00:38:58
Windows GetLastError 错误号 含义说明 0 操作成功完成。 1 功能错误。 2 系统找不到指定的文件。 3 系统找不到指定的路径。 4 系统无法打开文件。 5 拒绝访问。 6 句柄无效。 7 存储控制块被损坏。 8 存储空间不足,无法处理此命令。 9 存储控制块地址无效。 10 环境错误。 11 试图加载格式错误的程序。 12 访问码无效。 13 数据无效。 14 存储器不足,无法完成此操作。 15 系统找不到指定的驱动器。 16 无法删除目录。 17 系统无法将文件移到不同的驱动器。 18 没有更多文件。 19 介质受写入保护。 20 系统找不到指定的设备。 21 设备未就绪。 22 设备不识别此命令。 23 数据错误 (循环冗余检查)。 24 程序发出命令,但命令长度不正确。 25 驱动器无法找出磁盘上特定区域或磁道的位置。 26 无法访问指定的磁盘或软盘。 27 驱动器找不到请求的扇区。 28 打印机缺纸。 29 系统无法写入指定的设备。 30 系统无法从指定的设备上读取。 31 连到系统上的设备没有发挥作用。 32 进程无法访问文件,因为另一个程序正在使用此文件。 33 进程无法访问文件,因为另一个程序已锁定文件的一部分。 36 用来共享的打开文件过多。 38 到达文件结尾。 39 磁盘已满。 50 不支持网络请求。 51 远程计算机不可用 。 52

CreateFile() returns INVALID_HANDLE_VALUE but GetLastError() is ERROR_SUCCESS

跟風遠走 提交于 2019-12-23 08:30:10
问题 I am opening a serial port using CreateFile(). I've got a testcase (too complicated to redistribute) that consistently causes CreateFile() to return INVALID_HANDLE_VALUE and GetLastError() to return ERROR_SUCCESS . By the looks of it, this bug only occurs if one thread opens the port at the exact same time that another port closes it. The thread opening the port runs across this problem. I don't know if this makes a difference, but later on in the code I associate the port with a

CreateFile() returns INVALID_HANDLE_VALUE but GetLastError() is ERROR_SUCCESS

血红的双手。 提交于 2019-12-23 08:30:02
问题 I am opening a serial port using CreateFile(). I've got a testcase (too complicated to redistribute) that consistently causes CreateFile() to return INVALID_HANDLE_VALUE and GetLastError() to return ERROR_SUCCESS . By the looks of it, this bug only occurs if one thread opens the port at the exact same time that another port closes it. The thread opening the port runs across this problem. I don't know if this makes a difference, but later on in the code I associate the port with a

when CreateDirectory returns ERROR_ACCESS_DENIED and “shouldn't”

旧街凉风 提交于 2019-12-22 18:34:58
问题 My Win32 app A1 (actually a collection of processes) is trying to use CreateDirectory to create a directory D1 within parent directory P. The path to P is the value of the TMP environment variable, which makes P a potentially busy but generally permissive place. The vast majority of the time, everything works fine, but, rarely, CreateDirectory fails and GetLastError then returns ERROR_ACCESS_DENIED , the meaning of which in this context is not documented. I wrote a test application A2 which

Dokan虚拟磁盘开发实战

六月ゝ 毕业季﹏ 提交于 2019-12-21 16:44:49
因工作需要,最近与同事合作使用Dokan开发了一个虚拟磁盘的简单程序,初步实现了远程目录映射到本地虚拟磁盘的功能。 远程服务端是用Python写的,主要是将远程主机上的目录文件传给客戶端,在这里就不细说了。 Dokan客户端则由Delphi开发,其参考代码来自网络上的Delphi例子,比如 Mirror Driver 。 本篇文章主要是Dokan开发过程的一些总结,所以不会对Dokan本身做介绍,与Dokan有关的资料及代码,请到google里搜索,或到Dokan的官方网站去下载( Dokan官网 ),源码是C语言的,应用例子有Ruby、.Net及C的。如果想要Delphi的例子代码,只能自己去找了。 刚开始时由于不清楚如何用Dokan来实现一个文件系统,所以需要做一些试验,结果一不小心就蓝屏了!悲剧啊,用XP系统已经好多年没遇到蓝屏了。几次蓝屏之后,终于受不了了,于是在VMWare里装了个虚拟机的XP,这下不怕蓝屏了,哈哈。强烈建议装个虚拟机来玩Dokan,否则刚开始的时候你会蓝屏N次! 为简单起见,我做的Dokan虚拟磁盘采用将远程目录缓存到本地目录的方法来实现,这样就不用自己维护一堆目录、文件的信息,只需要关注如何更新同步目录与文件就可以了。由于Dokan是多线程的,因此实现时需要做到线程安全;查看Dokan使用的结构类型,发现只有两个成员可以使用,即DOKAN

Does CString preserve GetLastError code?

孤人 提交于 2019-12-13 08:38:49
问题 I need to post some debugging information into a log using MFC's CString, but I can't seem to find if it preserves error code set by the last WinAPI (and retrievable with GetLastError)? EDIT : Here's a code example of a simplified version of what I'm currently doing in my existing project: HANDLE hFile = CreateFile(strFilePath, ...); if(hFile == INVALID_HANDLE_VALUE) { logError(collectDebuggerInfo(strFilePath)); } void logError(LPCTSTR pStrDesc) { int nLastError = ::GetLastError(); CString

WinAPI: OpenProcess() returns error 5 with SeDebugPrivilege enabled for host process

ぐ巨炮叔叔 提交于 2019-12-11 06:54:03
问题 I've got a routine where I process-walk to obtain the HANDLE of each process as I 'walk' down the list (which works fine), but my issue lies when I do: HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID) where PROCESS_ALL_ACCESS is the access token, handle inheritance is set to FALSE , and pe32 is a PROCESSENTRY32 GetLastError() returns error code 5, and all the handles that are made are addresses which do not correspond to any appropriate process in Spy++32/64 (I've tried

wglShareLists fails with error 6 : ERROR_INVALID_HANDLE The handle is invalid

北战南征 提交于 2019-12-11 04:28:28
问题 I try to share a HPBUFFERARB between two classes : TGLForm and TGLForm2. (I tried FBO but having an old Borland Builder 6 version I can't manage using FBO) My goal is to display the same buffer in two openGL windows. So I declared outside of the first Form this object : struct GLRenderToTexture { struct { HDC hdc; HGLRC hGlRc; HPBUFFERARB hBuffer; PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB; PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB; PFNWGLCREATEPBUFFERARBPROC