Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 读取文本编辑框的值时出现问题_C++_C_Winapi_Desktop - Fatal编程技术网

C++ 读取文本编辑框的值时出现问题

C++ 读取文本编辑框的值时出现问题,c++,c,winapi,desktop,C++,C,Winapi,Desktop,我试图在windows对话框中读取文本编辑框的值,并使用消息框显示结果,但是运行程序时显示的结果只是“错误”,即使visual studio的调试部分中没有异常或错误消息。我做错了什么?以下是主题代码: LPWSTR path; GetDlgItemText(hDlg, IDC_PROGRAM, path, sizeof(path)); MessageBox(hDlg, NULL, path, MB_OK); 您正在将未初始化的指针和不正确的缓冲区大小传递给GetDlgItemText() 您

我试图在windows对话框中读取
文本编辑
框的值,并使用
消息框
显示结果,但是运行程序时显示的结果只是“错误”,即使visual studio的调试部分中没有异常或错误消息。我做错了什么?以下是主题代码:

LPWSTR path;
GetDlgItemText(hDlg, IDC_PROGRAM, path, sizeof(path));
MessageBox(hDlg, NULL, path, MB_OK);

您正在将未初始化的指针和不正确的缓冲区大小传递给
GetDlgItemText()

您需要为要写入的
GetDlgItemText()
的缓冲区分配内存,并指定该缓冲区的最大大小,例如:

WHAR路径[MAX_path]={};
GetDlgItemText(hDlg、IDC\u程序、路径、最大路径);
MessageBox(hDlg,NULL,路径,MB_OK);

您正在将未初始化的指针和不正确的缓冲区大小传递给
GetDlgItemText()

您需要为要写入的
GetDlgItemText()
的缓冲区分配内存,并指定该缓冲区的最大大小,例如:

WHAR路径[MAX_path]={};
GetDlgItemText(hDlg、IDC\u程序、路径、最大路径);
MessageBox(hDlg,NULL,路径,MB_OK);

sizeof(path)
是指针的大小。path变量是指向宽字符串的未初始化指针。最后一个参数必须是路径的最大大小,而不是指针的大小。它现在可以正常工作了!感谢您的帮助:)
sizeof(path)
是指针的大小。path变量是指向宽字符串的未初始化指针。最后一个参数必须是路径的最大大小,而不是指针的大小。它现在可以正常工作了!谢谢你的帮助:)