(C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口
首先是wchar_t转string
void Wchar_tToString(string& szDst, wchar_t* wchar)
{wchar_t* wText = wchar;DWORD dwNum = WideCharToMultiByte(CP_OEMCP, NULL, wText, -1, NULL, 0, NULL, FALSE);char* psText;psText = new char[dwNum];WideCharToMultiByte(CP_OEMCP, NULL, wText, -1, psText, dwNum, NULL, FALSE);szDst = psText;delete[]psText;
}
TCHAR转char
//将TCHAR转为char
void TcharToChar(const TCHAR* tchar, char* _char)
{int iLength;//获取字节长度 iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL);//将tchar值赋给_char WideCharToMultiByte(CP_ACP, 0, tchar, -1, _char, iLength, NULL, NULL);
}
//判断是否进程运行
//判断是否进程运行
bool isProcessRun(string process_name)
{HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (INVALID_HANDLE_VALUE == hSnapshot) {return NULL;}PROCESSENTRY32 pe = {sizeof(pe) };for (BOOL ret = Process32First(hSnapshot, &pe); ret; ret = Process32Next(hSnapshot, &pe)) {wchar_t* process_str = pe.szExeFile;string current_process_name;Wchar_tToString(current_process_name, process_str);if (current_process_name == process_name) {g_ProcessRun = true;break;}}CloseHandle(hSnapshot);return g_ProcessRun;
}
//获得目标进程的入口
//获得目标进程的入口
LPBYTE GetExeEntryPoint(char* filename)
{PIMAGE_NT_HEADERS pNTHeader;DWORD pEntryPoint;PLOADED_IMAGE pImage;pImage = ImageLoad(filename, NULL);if (pImage == NULL)return NULL;pNTHeader = pImage->FileHeader;//获得文件头pEntryPoint = pNTHeader->OptionalHeader.AddressOfEntryPoint + pNTHeader->OptionalHeader.ImageBase; //???看不懂ImageUnload(pImage);return (LPBYTE)pEntryPoint;
}
上述方法引用的头文件:
#include <iostream>
#include <stdarg.h>
#include <Windows.h>
#include <Psapi.h>
#include <stdint.h>
#include <tlhelp32.h>
#include <imagehlp.h>
#pragma comment(lib,"Psapi.lib") //编译这个lib文件
#pragma comment(lib,"imagehlp.lib") //编译这个lib文件
直接调用即可,希望C++封装越做越好,争取接近python
(C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口相关推荐
- TCHAR * 转为char * 和 char * 转为 TCHAR *
转码(常用类型和字符转换)转码(常用类型和字符转换) TCHAR * 转为char * char* TCHARToChar(const TCHAR* pTchar) {char* pChar = NU ...
- TCHAR与char的相互转化
1.TCHAR * 转为char * char* TCHARToChar(TCHAR* pTchar) {char* pChar = nullptr;int nLen = wcslen(pTchar) ...
- TCHAR和CHAR类型的互转
Win32中CStdString 是需要TCHAR类型的值才可以赋值的,而很多文件读取时FILE的fopen函数之类的需要的是CHAR,我们需要把它们互转,这里我在网上找到了一个比较方便的方法 TCH ...
- tchar与char不兼容_TCHAR与char的转换 | 学步园
最近开始看孙鑫老师的c++视频,在跟着视频做东西的时候,碰到了这个问题,视频中应该没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,但是我在自己电脑上编译时,就碰到 ...
- cstring转为string vc_VC之CString,wchar_t,int,string,char*之间的转换-阿里云开发者社区
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- VC之CString,wchar_t,int,string,char*之间的转换
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- VC之CString,wchar_t,int,string,char*之间的转换方法
1. CString 转 wchar_t CString path = "asdf"; wchar_t wstr[256] = path.AllocSysString(); 或者: ...
- PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下 #ifndef USE_H_ #define USE_H_ #i ...
- C++字符类型TCHAR、char和wchar_t
1.首先,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示. 2.wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wc ...
最新文章
- Android studio 设置忽略文件
- Linux下des对称性加密
- L2-002. 链表去重
- ArtRage中文版
- CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
- boost::hof::unpack用法的测试程序
- boost::filesystem模块实现Windows MAX_PATH的测试程序
- Linux系统文件属性,什么是Linux系统的文件属性?
- 配置管理-CMMI的五个等级
- 受损虚拟机的修复方法
- php 工商银行公众号支付代码_微信支付PHP SDK之微信公众号支付代码详解
- 红帽linux考证时间,红帽认证考试时间
- 有哪些好用的低代码开发平台(2)
- matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计
- bat文件打开一闪就没了_电脑上想要删除的顽固文件一直删除不了,一条命令帮你解决问题...
- Python之统计英文字符的个数
- winxp无法访问服务器共享文件夹,winxp系统无法访问共享文件夹提示网络错误的技巧介绍...
- [转载]2016美国数学建模MCM F题(政策)翻译:难民移入政策建模
- Android 自定义锁屏图案 View
- 人生最好是随意,人生不可太随意!
热门文章
- Java中static变量作用和用法详解
- JavaScript小效果的实现(笔记)
- php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
- MySQL高级-视图
- URL的语法及HTTP报文
- 设置远程桌面(一)修改Win7远程桌面端口
- centos7桌面没有计算机图标,centos7下创建桌面图标的方法
- python存储大量数据_如何在文件中密集地存储大量数据?
- img 显示base64_用 PySimpleGUI 做程序(7)--显示图片
- C语言中定义整形可以连等吗,关于一道分解整数为N个连数整数的编程题