- 博客(15)
- 收藏
- 关注
原创 string 转换为 LPCWSTR
LPCWSTR stringToLPCWSTR(std::string orig) { size_t origsize = orig.length() + 1; size_t convertedChars = 0; wchar_t *wcstring = (wchar_t *)malloc(sizeof(wchar_t)*(orig.length()-1)); mbstowc...
2019-04-23 10:58:34 536 1
原创 获取dll所在路径
string GetPath() { string dllPath; TCHAR tcFullPath[MAX_PATH]; char* pChPath = new char[MAX_PATH]; memset(pChPath,'\0',MAX_PATH); GetModuleFileName(::LoadLibrary(L"动态库名称.dll"),tcFullPath,...
2019-04-22 14:58:46 1044
转载 签名,验签的理解
点击打开原文链接一、公钥加密假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用。数字2,就是我的私钥,来解密。这样我就可以保护数据了。例如:我的好朋友x用我的公钥1加密了字符a,加密后成...
2019-04-09 11:13:04 344
转载 MFC中Invalidate() 和UpdateWindow()的用法
点击打开原文链接Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post,就是将该消息放入消息队列,当执行到WM_PAINT消息时才会对窗口进行重绘;UpdateWindow向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,...
2019-04-04 15:17:17 2135
转载 WritePrivateProfileString等读写.ini配置文件
点击打开原文链接1、写入.ini文件:BOOL WritePrivateProfileString( LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名 LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名 LPCTSTR lpString, // 键值,也就是数据 LPCT...
2019-04-04 13:45:45 398
转载 LoadLibrary函数详细说明
点击打开原文链接1、作用:将指定的模块加载到调用进程的地址空间中。2、使用语法HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName);3、参数lpFileName:模块的名称。这可以是库模块(.dll文件)或可执行模块(.exe文件)。指定的名称是模块的文件名,与模块定义(.def)文件中的LIBRARY关键字所指定...
2019-04-04 13:30:53 4018
转载 CFileFind用法总结
点击打开原文地址CFileFind用法总结:头文件:afx.h功能:本地文件查找具体类型文件:.格式,例如:.pdf:查找.pdf文件所有 文件:.CFileFind类的构造函数::CFileFind()和关闭函数::Close(),成对使用。成员函数根据操作特性分成三类:查找操作类、获得文件属性类和判断文件属性类。(1) 查找操作类:::FindFile():...
2019-04-04 10:32:59 1410
转载 CreateThread与_beginthreadex本质区别
点击打开原文链接一、预热:下面这个程序的主线程会创建了一个子线程并等待其运行完毕,子线程就输出它的线程ID号然后输出一句经典名言——Hello World。整个程序的代码非常简短,只有区区几行。//最简单的创建多线程实例#include <stdio.h>#include <windows.h>//子线程函数DWORD WINAPI ThreadFun...
2019-04-04 10:08:27 288
转载 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
点击打开原文链接一、CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面.EVENT有两种状态:发信号,不发信号。SetEvent:将EVENT置为发信号。ResetEvent:将EVENT置为不发信号。WaitForSingleObject():等待,直到参数所指定的OBJECT成为发信号状态时才返回,OBJECT可以是EVENT...
2019-04-03 17:35:19 654
转载 DeleteDC() 与 ReleaseDC() 的区别
点击打开原文链接DeleteDC该函数删除指定的设备上下文环境(DC)。原型:BOOL DeleteDC(HDChdc);参数:hdc:设备上下文环境的句柄。返回值:成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。说明:如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应...
2019-04-03 16:30:12 721
转载 m_hWnd和this指针
点击打开原文链接一、m_hWnd1、m_hWnd这个成员变量最早是定义在类CWnd中,而且是类CWnd的第一个数据成员。它是窗口类的一个句柄,凡是从CWnd派生的类都有这个句柄,凡是以CWnd派生的类定义的对象内部也都有这个句柄,它是类或者对象标识自己的句柄。凡是窗口都有一个句柄用来标识自己,在CWnd类中将这个句柄作为一个成员变量直接封装了,所以CWnd类的成员函数都没有句柄这个参数...
2019-04-03 16:00:09 369
转载 MFC中的模态对话框与非模态对话框
点击打开原文链接模态对话框创建:MyDialog mydlg;mydlg.DoModal()当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。模态对话框的关闭顺序:OnClose:按关闭符号X后,响应WM_CLOSE消息;OnKillFocus:窗口即将失去输入焦点,响应WM_KILLFOCUS消息;OnDestroy:窗口即将被销...
2019-04-03 15:12:33 453
转载 扩大下C盘空间
点击打开原文链接1、在桌面“我的电脑”右键,找到“管理”,如图:2、在“管理”对话框内,找到“磁盘管理”,如图:3、在“磁盘管理”里面找到D盘,鼠标右键,“压缩卷”,在如下图的红框内,填入压缩的大小。4、鼠标右键C盘,点击“扩展卷”,即可。注意:1、若C盘的“扩展卷”为灰色,则借助于“分区助手”软件。(下载链接)2、使用“分区助手”软件时,每次尽量不要合并太...
2019-04-01 19:27:31 204
转载 new对象时,类名后加括号与不加括号的区别
点击打开原文链接#include <iostream>using namespace std;// 空类class empty{};// 一个默认构造函数,一个自定义构造函数class Base{public: Base() { cout << " default Base construct " <&l...
2019-04-01 09:59:35 1218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人