c语言PWCHAR转换char
答案:1 信息版本:手机版
解决时间 2020-04-13 12:40
已解决
2020-04-12 12:45
void GetProcessInfo(
IN PWCHAR pro_imageName_buf,
IN PWCHAR pro_full_path_buf )
{
ULONG addr = 0;
PEPROCESS EProcess;
PWCHAR p = NULL;
KAPC_STATE apc_state;
NTSTATUS status = STATUS_SUCCESS;
EProcess = PsGetCurrentProcess();
//status = PsLookupProcessByProcessId( ProcessId, &EProcess );
//if ( !NT_SUCCESS(status) )
//{
//return;
//}
addr = (ULONG ) EProcess;
if(addr == 0 || addr == 0xFFFFFFFF)
{
return;
}
//附加到该进程
//KeStackAttachProcess( EProcess, &apc_state );
//addr是EPROCESS中PEB*成员的地址
addr += 0x1B0;
//addr是PEB*
if((addr = *(ULONG*)addr) == 0)
{
//KeUnstackDetachProcess( &apc_state );
return;
}
//addr是PEB中的ProcessParameters
addr += 0x10;
if((addr = *(ULONG*)addr) == 0)
{
//KeUnstackDetachProcess( &apc_state );
return;
}
addr += 0x3C;
//addr是ImagePathName(UNICODE_STRING)
if((addr = *(ULONG*)addr) == 0)
{
//KeUnstackDetachProcess( &apc_state );
return ;
}
wcscpy(pro_full_path_buf,(PWCHAR)addr);
if( (p = wcsrchr(pro_full_path_buf,L'\\')) != NULL)
{
p++;
wcscpy(pro_imageName_buf,p);
}
//KeUnstackDetachProcess( &apc_state );
}
char aPathName[256];
char aFileName[256];
调用:GetProcessInfo((PWCHAR)aFileName,(PWCHAR)aPathName);
获得就是一个字母W,怎么把PWCHAR转换CHAR?
全部回答
1楼
2020-04-12 13:18
直接赋值即可,不用那么麻烦。
int i = 1;
char c = i;
因为c/c++里面的char本就是一个数字(int类型的)。
不过,要注意一个范围的问题,就是这个i得在char数据类型的取值范围内。
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯