首先是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/判断是否进程运行/获得目标进程的入口相关推荐

  1. TCHAR * 转为char *   和 char  * 转为 TCHAR *

    转码(常用类型和字符转换)转码(常用类型和字符转换) TCHAR * 转为char * char* TCHARToChar(const TCHAR* pTchar) {char* pChar = NU ...

  2. TCHAR与char的相互转化

    1.TCHAR * 转为char * char* TCHARToChar(TCHAR* pTchar) {char* pChar = nullptr;int nLen = wcslen(pTchar) ...

  3. TCHAR和CHAR类型的互转

    Win32中CStdString 是需要TCHAR类型的值才可以赋值的,而很多文件读取时FILE的fopen函数之类的需要的是CHAR,我们需要把它们互转,这里我在网上找到了一个比较方便的方法 TCH ...

  4. tchar与char不兼容_TCHAR与char的转换 | 学步园

    最近开始看孙鑫老师的c++视频,在跟着视频做东西的时候,碰到了这个问题,视频中应该没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,但是我在自己电脑上编译时,就碰到 ...

  5. 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 ...

  6. VC之CString,wchar_t,int,string,char*之间的转换

    VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...

  7. VC之CString,wchar_t,int,string,char*之间的转换方法

    1. CString 转 wchar_t CString path = "asdf"; wchar_t wstr[256] = path.AllocSysString(); 或者: ...

  8. PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换

    本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下 #ifndef USE_H_ #define USE_H_ #i ...

  9. C++字符类型TCHAR、char和wchar_t

    1.首先,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示. 2.wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wc ...

最新文章

  1. Android studio 设置忽略文件
  2. Linux下des对称性加密
  3. L2-002. 链表去重
  4. ArtRage中文版
  5. CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
  6. boost::hof::unpack用法的测试程序
  7. boost::filesystem模块实现Windows MAX_PATH的测试程序
  8. Linux系统文件属性,什么是Linux系统的文件属性?
  9. 配置管理-CMMI的五个等级
  10. 受损虚拟机的修复方法
  11. php 工商银行公众号支付代码_微信支付PHP SDK之微信公众号支付代码详解
  12. 红帽linux考证时间,红帽认证考试时间
  13. 有哪些好用的低代码开发平台(2)
  14. matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计
  15. bat文件打开一闪就没了_电脑上想要删除的顽固文件一直删除不了,一条命令帮你解决问题...
  16. Python之统计英文字符的个数
  17. winxp无法访问服务器共享文件夹,winxp系统无法访问共享文件夹提示网络错误的技巧介绍...
  18. [转载]2016美国数学建模MCM F题(政策)翻译:难民移入政策建模
  19. Android 自定义锁屏图案 View
  20. 人生最好是随意,人生不可太随意!

热门文章

  1. Java中static变量作用和用法详解
  2. JavaScript小效果的实现(笔记)
  3. php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
  4. MySQL高级-视图
  5. URL的语法及HTTP报文
  6. 设置远程桌面(一)修改Win7远程桌面端口
  7. centos7桌面没有计算机图标,centos7下创建桌面图标的方法
  8. python存储大量数据_如何在文件中密集地存储大量数据?
  9. img 显示base64_用 PySimpleGUI 做程序(7)--显示图片
  10. C语言中定义整形可以连等吗,关于一道分解整数为N个连数整数的编程题