C++ Regex&;无效的空指针表达式
我从谷歌上找到了这个网站,我想这里的人们会帮助解决编码问题 我正在为一个应用程序创建一个坏词过滤器,但我遇到了问题。 目前,我正在从应用程序入口点创建一个线程,线程流如下所示:C++ Regex&;无效的空指针表达式,c++,regex,filter,crash,expression,C++,Regex,Filter,Crash,Expression,我从谷歌上找到了这个网站,我想这里的人们会帮助解决编码问题 我正在为一个应用程序创建一个坏词过滤器,但我遇到了问题。 目前,我正在从应用程序入口点创建一个线程,线程流如下所示: while(true) { if (!OpenClipboard(NULL)) ExitProcess(0); //TODO: Try opening clipboard again. h = GetClipboardData(CF_TEXT); //h is HANDLE.
while(true)
{
if (!OpenClipboard(NULL))
ExitProcess(0); //TODO: Try opening clipboard again.
h = GetClipboardData(CF_TEXT); //h is HANDLE.
std::string CB_Data = (char*)h;
if(CB_Data.size() != NULL) //An attempt to check if it's not empty
{
if ( std::regex_search(CB_Data.c_str(), BADWORD_FILTER))
{
try
{
EmptyClipboard();
SetClipboardData(CF_TEXT, INFORMATION); //INFORMATION is converted to char from HANDLE. INFORMATION = "Bad word filter detected forbidden words pattern."
}
catch(...)
{
//TODO: Error logging
}
}
else if ( std::regex_search(CB_Data.c_str(), BADWORD_FILTER2))
{
try
{
EmptyClipboard();
SetClipboardData(CF_TEXT, INFORMATION); //INFORMATION is converted to char from HANDLE. INFORMATION = "Bad word filter detected forbidden words pattern."
}
catch(...)
{
//TODO: Error logging
}
EmptyClipboard();
SetClipboardData(CF_TEXT, INFORMATION); //INFORMATION is converted to char from HANDLE. INFORMATION = "Bad word filter detected forbidden words pattern."
}
}
CloseClipboard();
Sleep(1000); //Check every 1 second for the forbidden words.
}
因此,该应用程序监视剪贴板中的禁止字。然而,大多数时候我都会遇到“Expression:Invalid null pointed”错误,我对VisualStudio调试器并不熟悉。我试过了,但显然没有成功
以下是错误:
非常感谢您提供的任何帮助。您会收到一个错误,因为
GetClipboardData()
没有返回const char*
指针,并且std::string
构造函数试图将您的参数作为const char*
读取
正如您在问题中所述,GetClipboardData()
返回一个句柄。有关如何使用此函数的正确示例,请参阅主题
其他有用的提示:
- 按“重试”按钮,您将进入调试器。使用调试器,您可以准确地看到程序出错的地方
CB_Data.size()
是一个无符号整数值(字符串的长度),而不是指针。不要将其与NULL
进行比较李>
您的错误表明异常发生在第930行。您发布的代码片段中的哪一行是930?第930行来自../include/xstring-它来自#include
,希望有人能提供帮助。