MFC 中正则表达式的使用,找不到atlrx.h解决办法
2010-04-24 02:19
543 查看
正好做的程序需要从读取网页中的部分信息,便想到了正则。
vs2008.。。
MSDN下
template < class CharTraits = CAtlRECharTraits > class CAtlRegExp
有个例子程序
理想输出结果:
0: "http"
1: "search.microsoft.com"
2: "/us/Search.asp"
3: "qu=atl&boolean=ALL"
4: "results"
但实际上,如果只做到这里是得不到理想结果的,编译的时候就会得到错误提示,大概的意思是说,这个头文件找不到。
为什么会出现这种情况了,原来是这么一情况
VS 2008中由于将ALT项目的部分代码剥离出去成为了独立的开源项目,需要用到ALT中正则表达式等功能就需要手动下载。
我不是第一个遇到这个问题的,所以已经有前人给出了解决方案。
可到http://atlserver.codeplex.com/该网下载所需要的包,将下载到的文件解压到工作目录
会得到如下图所示的文件,我是解压到D盘符下。
好了,文件都有了,现在就要配置你的项目了
vs2008 ->【工具】->【选项】;
右边列表选择【项目和解决方案】->【VC++目录】;
坐上角选择【包含文件】;
新加入一行,文件路径就是解压文件的路径,如下
这样就ok了,可以使用正则的强大功能了,比自己一个字符一个字符处理强悍n多。
学习交流>^<欢迎拍砖
vs2008.。。
MSDN下
template < class CharTraits = CAtlRECharTraits > class CAtlRegExp
有个例子程序
// catlregexp_class.cpp #include <afx.h> #include <atlrx.h> int main(int argc, char* argv[]) { CAtlRegExp<> reUrl; // Five match groups: scheme, authority, path, query, fragment REParseError status = reUrl.Parse( "({[^:/?#]+}:)?(//{[^/?#]*})?{[^?#]*}(?{[^#]*})?(#{.*})?" ); if (REPARSE_ERROR_OK != status) { // Unexpected error. return 0; } CAtlREMatchContext<> mcUrl; if (!reUrl.Match( "http://search.microsoft.com/us/Search.asp?qu=atl&boolean=ALL#results", &mcUrl)) { // Unexpected error. return 0; } for (UINT nGroupIndex = 0; nGroupIndex < mcUrl.m_uNumGroups; ++nGroupIndex) { const CAtlREMatchContext<>::RECHAR* szStart = 0; const CAtlREMatchContext<>::RECHAR* szEnd = 0; mcUrl.GetMatch(nGroupIndex, &szStart, &szEnd); ptrdiff_t nLength = szEnd - szStart; printf_s("%d: /"%.*s/"/n", nGroupIndex, nLength, szStart); } return 0; }
理想输出结果:
0: "http"
1: "search.microsoft.com"
2: "/us/Search.asp"
3: "qu=atl&boolean=ALL"
4: "results"
但实际上,如果只做到这里是得不到理想结果的,编译的时候就会得到错误提示,大概的意思是说,这个头文件找不到。
为什么会出现这种情况了,原来是这么一情况
VS 2008中由于将ALT项目的部分代码剥离出去成为了独立的开源项目,需要用到ALT中正则表达式等功能就需要手动下载。
我不是第一个遇到这个问题的,所以已经有前人给出了解决方案。
可到http://atlserver.codeplex.com/该网下载所需要的包,将下载到的文件解压到工作目录
会得到如下图所示的文件,我是解压到D盘符下。
好了,文件都有了,现在就要配置你的项目了
vs2008 ->【工具】->【选项】;
右边列表选择【项目和解决方案】->【VC++目录】;
坐上角选择【包含文件】;
新加入一行,文件路径就是解压文件的路径,如下
这样就ok了,可以使用正则的强大功能了,比自己一个字符一个字符处理强悍n多。
学习交流>^<欢迎拍砖
相关文章推荐
- MFC 中正则表达式的使用,找不到atlrx.h解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法 mark
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- VS2013中 勾选在共享DLL中使用MFC 报错 系统找不到指定文件 参考解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法 mark
- PHP使用正则表达式匹配中文,有部分匹配不出来的解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- 使用第三方库找不到头文件的解决办法
- 使用Zeppelin时出现at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Client.recv_getFormType(RemoteInterpreterService.java:288)错误的解决办法(图文详解)
- Eclipse 插件Maven在使用 add dependency,找不到包,解决办法
- 使用eclipse开发Android,项目出现小红叉,找不到R文件解决办法
- linux find 命令中 如何使用正则表达式,为什么经常找不到想要的文件名
- MFC dll 类型是 共享 规则 导出对话框函数使用出错解决办法
- 非MFC工程使用MFC库时的问题及解决办法
- android xml布局文件中使用RelativeLayout,明明有这个id,却提示找不到---->解决办法
- ORDER BY 子句在子查询和公用表表达式中无效的一种解决办法--使用表变量