防止Visual C++应用程序缓冲区溢出
2008-11-13 19:32:40 来源:WEB开发网列表3:验证数据的长度
System::Boolean ProcessData(String *Input, Int32 UpperLimit, Int32 LowerLimit)
{
StringBuilder *ErrorMsg; // 错误信息
// 检查输入信息错误
if (UpperLimit < LowerLimit)
{
// 建立错误消息
ErrorMsg = new StringBuilder();
ErrorMsg->Append(S"The UpperLimit input must be greater than ");
ErrorMsg->Append(S"the LowerLimit number.");
// 定义新的错误
System::ArgumentException *AE;
AE = new ArgumentException(ErrorMsg->ToString(),S"UpperLimit");
// 抛出错误
throw(AE);
}
// 检查数据长度错误条件
if (Input->Length < LowerLimit || Input->Length > UpperLimit)
{
// 建立错误信息
ErrorMsg = new StringBuilder();
ErrorMsg->Append(S"String is the wrong length. Use a string ");
ErrorMsg->Append(S"between 4 and 8 characters long.");
// 定义新的错误
System::Security::SecurityException *SE;
SE = new SecurityException(ErrorMsg->ToString());
//抛出错误
throw(SE);
}
// 如果数据是正确的就返回true
return true;
}
System::Void btnDataLength_Click(System::Object * sender, System::EventArgs * e)
{
try
{
// 处理输入文本
if (ProcessData(txtInput2->Text, 8, 4))
// 显示正确输入的结果信息
MessageBox::Show(txtInput2->Text, "Input String",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
catch (System::Security::SecurityException *SE)
{
// 显示错误输入的错误信息
MessageBox::Show(SE->Message, "Input Error",
MessageBoxButtons::OK, MessageBoxIcon::Error);
}
catch (System::ArgumentException *AE)
{
// 显示错误输入的错误信息
MessageBox::Show(AE->Message, "Argument Error",
MessageBoxButtons::OK, MessageBoxIcon::Error);
}
}
- ››防止网站被JS挂马和查杀方法
- ››Visual Basic 2008 数学函数
- ››防止iphone进入休眠后台播放音乐
- ››防止iphone进入休眠后台播放音乐
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››应用程序的配置管理Poco
- ››防止SQL SERVER的事件探查器跟踪软件的SQL脚本
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
更多精彩
赞助商链接