| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:字符串比较的问题
只看楼主 加入收藏
bobo2185355
Rank: 2
等 级:论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:3 
字符串比较的问题
有一个函数实现文件名比较的功能
BOOL IsProcessOD( PEPROCESS eprocess_temp)
{
    PTSTR _pName=NULL;
    _pName = (PTSTR)((ULONG)eprocess_temp + 0x174);   //_pName为结构成员:进程文件名
    if(MmIsAddressValid(_pName))
    {
        DbgPrint("_pName =%s\n",_pName);            //如何输出文件名
        if (!_stricmp(_pName,"红旗OD2011.exe"))     //如何比较结构成员是否是我要寻找的进程文件 红旗OD2011.exe   
        {               
            DbgPrint("GameID= %d\n",(ULONG)eprocess_gameprocess+0x84);
            return TRUE;
        }
    }
    return FALSE;
}
搜索更多相关主题的帖子: 字符串 如何 
2014-06-03 21:47
bobo2185355
Rank: 2
等 级:论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
收藏
得分:0 
可能是我没把问题描述清楚吧,这是运行在R0下的,结构成员是 UCHAR[16],如何转换成UNICODE_STRING类型呢,这样才可以用RtlCompareUnicodeString进行比较,我现在暂时把文件名改成英文的,等待前辈指导下
2014-06-04 00:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:20 
『多字节字符转化为宽字符』
C标准库中函数名是 mbstowcs
linux下一般用 iconv
windows的API是 MultiByteToWideChar,以及各种封装后的宏

『printf怎么输出』
按C标准,应该是
printf( "%ls %s\n", L"ABC", "ABC" );
wprintf( L"%ls %s\n", L"ABC", "ABC" );
也就是,不管是printf还是wprintf,char* 都对应 %s,wchar_t* 都对应 %ls
但我猜你用的是不符合标准的VC,VC中这么用:
printf( "%ls %s %ws %S\n", L"ABC", "ABC", L"ABC", L"ABC" );
wprintf( L"%ls %S %ws %s\n", L"ABC", "ABC", L"ABC", L"ABC" );
2014-06-04 09:52
bobo2185355
Rank: 2
等 级:论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
收藏
得分:0 
蓝屏,可能还是没处理好,暂时先把文件名改成英文的吧,先把帖子结了
2014-06-04 14:30
快速回复:字符串比较的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034800 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved