小编Cod*_*cks的帖子

CreateFile()串行通信问题

我试图通过我的USB端口(名为COM15)进行一些串行通信,我收到一个错误.这是发生错误的代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

每次编译程序时,打开的串口的句柄== INVALID_HANDLE_VALUE.我在CreateFile()msdn文档中读到了使用GetLastError()以获取"扩展错误信息".现在......当我运行代码时,GetLastError()返回值:2

在GetLastError()的msdn文档中,它说:

"设置最后错误代码的每个函数的文档的返回值部分说明了函数设置最后错误代码的条件."

我试图在CreateFile()msdn文档的返回值部分中查找'2'的含义,但无法在任何地方找到含义.

题:

1)为什么会发生这种情况:myPortHandle == INVALID_HANDLE_VALUE?

2)另外,如果有人可以指引我到msdn文档中查找GetLastError()返回的'2'的含义,那就太棒了!

c++ serial-communication createfile getlasterror

4
推荐指数
1
解决办法
1万
查看次数

字符串未在此范围C++中声明

我一直在测试一些gdi函数,并想用字符串测试一些东西.但是由于某种原因,当我运行此程序时,我收到以下错误:'string'未在此范围内声明

我甚至试图在开头包含"using namespace std"(通常我不必为创建字符串而做)但在这种情况下,在声明std :: string myString之后; 我得到另一个错误说:错误:'string'不是'std'的成员

我能做错什么?完整的代码在这里:

#define _WIN32_WINNT    0x0500  

#include <tchar.h>
#include <windows.h>


LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

TCHAR szClassName[ ] = _T("CodeBlocksWindowsApp");

int WINAPI WinMain (HINSTANCE hThisInstance,
                 HINSTANCE hPrevInstance,
                 LPSTR lpszArgument,
                 int nCmdShow)
{
HWND hwnd;               /* This is the handle for our window */
MSG messages;            /* Here messages to the application are saved */
WNDCLASSEX wincl;        /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName …
Run Code Online (Sandbox Code Playgroud)

c++ windows string std

0
推荐指数
1
解决办法
3万
查看次数