
VC++
Sidyhe
这个作者很懒,什么都没留下…
展开
-
C++之WebBrowser容器,SDK实现
cpp文件// XWebBrowser.cpp: implementation of the CXWebBrowser class.// http://blog.youkuaiyun.com/Sidyhe//////////////////////////////////////////////////////////////////////#include "XWebBrowser.h"//原创 2013-06-10 23:58:57 · 10825 阅读 · 5 评论 -
网页模拟点击(非鼠标,消息模拟)
代码是我的网页类的一部分,只要取得IWebBrowser2了就可以用。IWebBrowser2 *m_pIWebBrowser2 BOOL CXWebBrowser::ClickElementByID(PWCHAR pID){ BOOL bRet = FALSE; IDispatch *pDispatch = NULL; IHTMLDocument3 *htmlDoc3原创 2012-04-11 17:13:13 · 2155 阅读 · 0 评论 -
减少程序内存占用的方法
使用SetProcessWorkingSetSize函数把物理内存转移到交换区中。实际上程序使用的内存并没有减少,只是换了个一个地方而已,这样系统会有更多的物理内存来运作。但切记不可频繁调用,否则硬盘和CPU会忙于内存置换中。原创 2012-09-25 08:43:42 · 3458 阅读 · 0 评论 -
GetProcAddressEx跨进程获取导出函数地址
没什么新技术,就是把目标进程的内存读过来分析而已。代码在x86下测试通过,由于手头没有x64系统,希望热心的朋友测试一下x64的兼容性,可能不兼容的地方已经在代码中标出。PVOID GetProcAddressEx(HANDLE hProc, HMODULE hModule, LPCSTR lpProcName){ PVOID pAddress = NULL; SIZE_T OptS原创 2012-12-06 21:07:09 · 3587 阅读 · 1 评论 -
ReadPipe
BOOL ReadPipe(HANDLE hPipe, PVOID lpBuffer, UINT nSize, UINT MaxTime){ BOOL bRet = FALSE; DWORD dwOpt, dwTick; if (MaxTime != -1) dwTick = GetTickCount(); while (TRUE) { Sleep(100); if (Pee原创 2013-04-04 14:51:18 · 933 阅读 · 0 评论 -
SystemTime_Difference
VOID SystemTime_Difference(SYSTEMTIME const& st1, SYSTEMTIME const& st2, SYSTEMTIME *lpRet) { FILETIME ft1; SystemTimeToFileTime(&st1, &ft1); ULARGE_INTEGER const u1 = { ft1.dwLowDateTime, ft1.转载 2013-04-21 21:58:26 · 878 阅读 · 0 评论 -
GetWindowBitmap
HBITMAP GetWindowBitmap(HWND hWnd){ HBITMAP hBitmap = NULL; HDC hDc = GetDC(hWnd); if (hDc) { HDC hMemDc = CreateCompatibleDC(hDc); if (hMemDc) { BITMAPINFO BitMapInfo; DWORD *lpBit原创 2013-06-16 14:55:54 · 1649 阅读 · 1 评论 -
PCM格式保存为wav
HANDLE hFile; WAVE_HEADER wh; wh.szRiff = 'FFIR'; wh.szWave = 'EVAW'; wh.szFmt = ' tmf'; wh.FmtSize = sizeof(PCMWAVEFORMAT); CopyMemory(&wh.Fmt, lpFormat, sizeof(PCMWAVEFORMAT)); wh.szData = '原创 2013-09-03 09:23:22 · 2885 阅读 · 0 评论 -
DirectShow捕获音频之PCM的转换
CLSID_ACMWrapperhttp://msdn.microsoft.com/en-us/library/aa918794.aspx原创 2013-09-04 08:10:43 · 1285 阅读 · 0 评论 -
简体字转换为繁体字
/*BG2312 To GBKswitch (GetSystemDefaultLangID()){ case 0x0804://CHINESE_SIMPLIFIED break; case 0x0404://Chinese (Taiwan Region) break; default: break;}*/BOOL GB2312_GBK(CONS原创 2012-04-11 17:00:27 · 1299 阅读 · 0 评论 -
获取文件的版本信息
先上代码吧BOOL IsMicroSoft(TCHAR *pFile){ BOOL bRet = FALSE; PBYTE pInfo = NULL; TCHAR *pCompany; DWORD dwSize; LANGANDCODEPAGE *plcp; UINT nSize; TCHAR *pToGet = new TCHAR[MAX_PATH];原创 2012-04-10 21:57:31 · 880 阅读 · 0 评论 -
SDK ListView改变某一行某一列的文字颜色/背景颜色
注册窗口类,CreateWindowEx创建窗口,同样用这个函数创建一个ListView,添加一些ITEM。在窗口消息处理函数中处理WM_NOTIFY的NM_CUSTOMDRAW消息,代码框架如下LRESULT DoMsg(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg) { case WM_CRE原创 2012-01-04 20:04:01 · 5365 阅读 · 6 评论 -
进程特权的提升与降低
...原创 2016-11-08 12:19:02 · 908 阅读 · 0 评论 -
关于VC6.0的文件体积优化
平时写程序,比较注重的就是文件的大小,当然体积越小越好,不管是存储节省,还是提高效率,都是有好处的。今天突发奇想,去研究研究这方面,假设各种体积优化都是有好处的,那MS为什么不这么做呢?下面就是我的个人见解了,一个一个来看。------------------------#pra原创 2011-07-29 02:37:58 · 2507 阅读 · 2 评论 -
初学D3D,学习记录。
看看魔兽世界那3D效果,啧啧。昨天下载了一个10G的3D单机游戏,结果电脑带不动,囧。------------2D和3D。就像初中几何中的二维坐标和三维坐标一样,人都是在三维世界中的。编程也是一样,我用的SDK是DirectX9版本。参考资料是《3D游戏程序设计入原创 2011-08-16 07:07:06 · 2141 阅读 · 0 评论 -
[C++]D3D中立体的移动+旋转
高中没白上啊,居然还用到了矩阵,不过都快忘干净了,又复习了一下。旋转和移动是分步进行的,然后再把每一步的结果相乘即为所得结果。写了个函数,方便自己使用。HRESULT CXDirect3D::SetObjectPositionXYZ(CONST FLOAT x, CO原创 2011-08-17 13:01:53 · 2455 阅读 · 4 评论 -
C++枚举系统服务
突然想仿照XueTr中的服务管理写个小程序。hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);打开服务管理器,SC_MANAGER_ALL_ACCESS的权限有点大,懒得查了。EnumServicesStatusEx枚举服务,也可以获得Driver的服务,需要注意的是这个函数的缓冲区是不固定的,贸然使用一个过大或者过小的缓冲原创 2011-12-31 21:10:06 · 5365 阅读 · 1 评论 -
编辑框控件的风格
编辑框控件的风格控件风格含义ES_AUTOHSCROLL当用户在行尾键入一个字符时,正文将自动向右滚动10个字符,当用户按回车键时,正文总是滚向左边。ES_AUTOVSCROLL当用户在最后一个可见行按回车键时,正文向上滚动一页。ES_CENTER在多行编辑框中使正文居中转载 2012-01-01 22:20:07 · 2602 阅读 · 0 评论 -
为窗口设置字体(SDK)
SDK写个窗口真难看,系统默认的不好。解决方法:在窗口的回调函数中(Window是WM_CREATE,Dialog是WM_INITDIALOG)对此窗口设置字体(WM_SETFONT)先创建一种字体,保存起来。 LOGFONT LogFont; ZeroMemory(&LogFont, sizeof(LogFont)); lstrcpy(LogFont.lfFaceName,原创 2012-01-02 17:24:29 · 3745 阅读 · 1 评论 -
Windows下编译ffmpeg(2013.9.6)
主要是参考了http://blog.sina.com.cn/s/blog_77c6324101019s2n.html环境:Win7+MinGW+Msys+VS2005MinGW+Msys集成编译环境下载:http://sourceforge.net/projects/mingwbundle/最新ffmpeg代码下载:http://ffmpeg.org/download.html修改原创 2013-09-06 21:09:37 · 2684 阅读 · 0 评论 -
GetSocketLocalPort
USHORT GetSocketLocalPort(SOCKET s){ sockaddr Addr; sockaddr_in *lpSa; int addr_len = sizeof(Addr); USHORT dwRet = 0; if (getsockname(s, &Addr, &addr_len) == NO_ERROR) { if (Addr.sa_family =原创 2013-09-13 14:30:33 · 1246 阅读 · 0 评论 -
Windows FILETIME与JAVA Date互转
public class TimeHelper { private final static long DIFF_UNIX_WIN_MS = 11644473600000L; private final static long MULTIPLE_MS_100NS = 10000; private TimeHelper() { } public static Date Fil原创 2015-08-24 17:59:17 · 2291 阅读 · 0 评论 -
[MFC]OnPaint双缓冲绘图
void CXButton::OnPaint(){ CRect PaintRect; CPaintDC dc(this); CDC MemDC; CBitmap MemBitmap; // 双缓冲绘图 GetClientRect(PaintRect); if (MemDC.CreateCompatibleDC(&dc)) { if (MemBitmap.CreateComp原创 2015-09-16 17:43:00 · 4103 阅读 · 1 评论 -
C++操作HTML TABLE元素
BOOL TableInsertRow(IHTMLTable* TableElement, LONG nRow, IHTMLTableRow* &RowElement){ BOOL IsOk; IDispatch *DispRow; IsOk = FALSE; if (SUCCEEDED(TableElement->insertRow(nRow, &DispRow))) { Is原创 2015-09-22 09:44:18 · 2018 阅读 · 0 评论 -
C++调用JS函数
BOOL CQueryWindow::AddSelectOption(BSTR SelectId, BSTR Text){ BOOL IsOk; IHTMLDocument2 *HtmlDoc2; IsOk = FALSE; if (SUCCEEDED(GetDHtmlDocument(&HtmlDoc2))) { IDispatch* ScriptObject; if (原创 2015-11-03 10:04:40 · 3352 阅读 · 0 评论 -
gb2312-unicode(ucs2)
BOOL UCS2_TO_GB2312(std::string &dst, LPCWSTR src);BOOL GB2312_TO_UCS2(std::wstring &dst, LPCSTR src);原创 2015-11-19 11:44:33 · 813 阅读 · 0 评论 -
编写MYSQL插件(UDF)使其实现Split函数
.原创 2016-01-19 16:12:12 · 1876 阅读 · 0 评论 -
多字节字符串<===>宽字符串
WideCharToMultiByteExMultiByteToWideCharEx原创 2016-01-20 10:16:51 · 857 阅读 · 0 评论 -
使用Visual Studio编译MYSQL CONNECTOR C/C++(MYSQLCPPCONN)
...原创 2016-03-10 13:16:19 · 3062 阅读 · 1 评论 -
新版格式化输出调试信息
.原创 2015-05-03 13:57:32 · 767 阅读 · 0 评论 -
VC取网络UTC时间
BOOL NistGetTime(LPFILETIME OutTime){ BOOL bOk; struct hostent *host; bOk = FALSE; if (host = gethostbyname("time.nist.gov")) { SOCKET s; in_addr ia; CHAR IpText[32]; memcpy(&ia, host-原创 2015-04-28 05:48:18 · 3843 阅读 · 0 评论 -
[SDK]创建DC,保存DC为BMP文件
HDC CreateBitmapDC(LONG Width, LONG Height){ HDC hDC, hMemDC; BITMAPINFO bi; HBITMAP hBitmap; PVOID Bits; hDC = NULL; hMemDC = CreateCompatibleDC(NULL); memset(&bi, 0, sizeof(bi)); bi.bmiHea原创 2015-04-07 13:18:28 · 1619 阅读 · 1 评论 -
把程序嵌入网页之ATL编写ActiveX[标准窗口+接受参数]
图文并茂的演示了如何使用ATL开发ActiveX控件,支持网页传参,具有独立窗口,可以像编写普通界面程序那样来编写网页控件。原创 2013-09-26 15:25:12 · 6668 阅读 · 7 评论 -
获取有线网卡的物理地址
BOOL GetMacAddress(UCHAR MacAddress[8]){ BOOL bRet = FALSE; PIP_ADAPTER_INFO lpAdapterInfo = NULL; ULONG nSize = 0; if (GetAdaptersInfo(lpAdapterInfo, &nSize) == ERROR_BUFFER_OVERFLOW) { if (原创 2013-11-25 16:59:02 · 2412 阅读 · 1 评论 -
HOOK IAT
template __forceinlineT* VA2RVA(PVOID Base, ULONG_PTR Va){ return (T*)((PCHAR)Base + Va);}PIMAGE_IMPORT_DESCRIPTOR GetImageImportDescriptor(HMODULE hModule){ IMAGE_DOS_HEADER *lpDosHeader = (原创 2014-05-04 17:09:46 · 1120 阅读 · 0 评论 -
利用pdb获取未导出符号
BOOL InitSymHandler(HANDLE hProc){ CHAR SymPath[MAX_PATH], CurDir[MAX_PATH]; GetCurrentDirectoryA(sizeof(CurDir) / sizeof(CurDir[0]), CurDir); SymSetOptions(SYMOPT_DEFERRED_LOADS|SYMOPT_EXACT_SYM原创 2014-07-30 01:00:57 · 2572 阅读 · 1 评论 -
简单socket连接,tcp,备用
SOCKET Connect(CHAR* lpText, USHORT uPort){ SOCKET s; s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (s != INVALID_SOCKET) { CHAR szIp[32] = {0}; sockaddr_in sa; if (inet_addr(lpText)原创 2014-09-02 08:48:04 · 965 阅读 · 0 评论 -
Crypt Api创建随机数
BOOL CreateRandomNumber(PVOID lpBuffer, ULONG cbBuffer){ BOOL bResult; bResult = FALSE; if ((lpBuffer != NULL) && (cbBuffer > 0)) { HCRYPTPROV CryptContext; if (CryptAcquireContext(&CryptCo原创 2015-03-02 07:51:15 · 1159 阅读 · 0 评论 -
非控制台程序创建控制台
AllocConsole();#pragma warning(disable:4996) _tfreopen(TEXT("CONOUT$"), TEXT("w"), stdout); _tfreopen(TEXT("CONOUT$"), TEXT("w"), stderr); _tfreopen(TEXT("CONIN$"), TEXT("r"), stdin);#pragma war转载 2015-03-17 23:44:57 · 817 阅读 · 0 评论 -
ADSL拨号
#include #include #pragma comment(lib, "RasApi32.lib")HRASCONN RasGetConnection(TCHAR *lpName){ HRASCONN hRet; LPRASCONN lpConn; DWORD cbConn; DWORD cbOpt; DWORD dwRet; hRet = NULL; lpCon原创 2015-04-02 04:27:07 · 673 阅读 · 0 评论