Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
Winforms 为什么来自numericUpDown对象的输入不被视为常量? 我正在制作一个基本的GUI密码创建器,它在C++中创建一个随机的字母、数字和符号序列(它是一个Windows窗体应用程序)。我使用numericUpDown对象检索用户输入的密码长度。我试图用这个数字作为长度来定义一个字符数组,但是我得到了一个错误,上面写着“expected constant expression”。我试图将它定义为一个常量变量,但即使这样也不起作用。有什么解决办法吗_Winforms_User Interface_C++ Cli - Fatal编程技术网

Winforms 为什么来自numericUpDown对象的输入不被视为常量? 我正在制作一个基本的GUI密码创建器,它在C++中创建一个随机的字母、数字和符号序列(它是一个Windows窗体应用程序)。我使用numericUpDown对象检索用户输入的密码长度。我试图用这个数字作为长度来定义一个字符数组,但是我得到了一个错误,上面写着“expected constant expression”。我试图将它定义为一个常量变量,但即使这样也不起作用。有什么解决办法吗

Winforms 为什么来自numericUpDown对象的输入不被视为常量? 我正在制作一个基本的GUI密码创建器,它在C++中创建一个随机的字母、数字和符号序列(它是一个Windows窗体应用程序)。我使用numericUpDown对象检索用户输入的密码长度。我试图用这个数字作为长度来定义一个字符数组,但是我得到了一个错误,上面写着“expected constant expression”。我试图将它定义为一个常量变量,但即使这样也不起作用。有什么解决办法吗,winforms,user-interface,c++-cli,Winforms,User Interface,C++ Cli,以下代码是按下“随机化”按钮(提示创建密码并显示密码的按钮)时执行的代码的一部分 const int length = System::Convert::ToInt16(numericUpDown1->Value); 然后在节目的后面: char p[length]; 不能声明C++中的可变大小的数组(对于C++ + CLI同样如此)。 听起来您想生成一个随机字符数组,并将其转换为System::String(System::String是不可变的,因此需要数组来处理数据)。为此,您需

以下代码是按下“随机化”按钮(提示创建密码并显示密码的按钮)时执行的代码的一部分

const int length = System::Convert::ToInt16(numericUpDown1->Value);
然后在节目的后面:

char p[length];

不能声明C++中的可变大小的数组(对于C++ + CLI同样如此)。 听起来您想生成一个随机字符数组,并将其转换为

System::String
System::String
是不可变的,因此需要数组来处理数据)。为此,您需要使用
数组

array<wchar_t>^ data = gcnew array<wchar_t>(System::Convert::ToInt32(numericUpDown1->Value));
// fill each character in data with a random character.
System::String^ password = gcnew System::String(data);
array^data=gcnewarray(System::Convert::ToInt32(numericUpDown1->Value));
//用随机字符填充数据中的每个字符。
系统::字符串^password=gcnew系统::字符串(数据);

编辑:如果您想知道为什么用
wchar\u t
而不是
char
:在c++/cli中,
wchar\u t
类似于.NET使用的字符类型
System::char
char
类似于
System::SByte
(带符号的字节).

发布代码。描述很好,但如果没有任何代码,就很难帮助您。