自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 openGL学习 第一步 创建窗体

int APIENTRY _tWinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPTSTR    lpCmdLine,                     int       nCmdShow){..... WNDCLASSEX windowC

2009-08-09 17:09:00 544

原创 重读COM本质的体会--第一章

1 接口与实现相分离: 原因接口是供外部调用者使用的,一般来说不要随便修改接口,原因是:1 使得外部调用者需要改代码,当调用层代码量很大的时候,可能会漏掉一些地方,使得出现未知错误。2 调用者必须重新编译程序,对于自动升级的程序来说需要替换很多部分,管理带来麻烦。等等很多原因, 我们希望我们的新DLL扔进程序就可以用。我们的实现部分有很多BUG,在维护过程中需要不断的修改程序,DLL也不断

2009-05-03 14:31:00 521

原创 API挂接的一个例子

测试DLL的函数APIHookDll.dll void __stdcall PrintfHelloWorld(){ printf("Hello World");} APIHook.exe代码#include //#include #include #include #include "APIHookDll.h"#pragma comment(lib, "ImageHlp")

2009-04-26 14:37:00 494

原创 共享内存进一步学习

  HANDLE hFileMaping = NULL;  do  {  hFileMaping = OpenFileMappingW(FILE_SHARE_READ | FILE_SHARE_WRITE, FALSE, L"jyytest");  if (NULL == hFileMaping)  {   hFileMaping = CreateFileMappingW(INVALID_HA

2009-04-06 11:36:00 384

原创 内存映射文件初步学习

 HANDLE hFile = NULL; HANDLE hFileMaping = NULL;  SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); DWORD dwPageSize = sysInfo.dwAllocationGranularity;  do  {  hFile = CreateFileW(L"D://pfsvoddata.bbv",

2009-04-06 11:09:00 375

原创 通过#pragma data_seg共享数据

#pragma data_seg("Share")volatile int g_nFirst = 0;int g_nSecond;                        //注意这里没有初始化,不能放入共享区#pragma data_seg()__declspec(allocate("Share")) int g_nThird = 0;  //通过__declspec(alloca

2009-04-06 09:39:00 642

原创 关于virtualFree的回收

 X864 CPU页面大小是4K, 4K表示物理内存扇入扇出以4K为单位, virtualFree如果使用DECOMMIT,那么一次要扇出的大小为4K的倍数.页面分配的粒度 64K, 意义就是 内存管理是按页来分的, virtualAlloc标志是MEM_RESERVE的时候,一次分配以64K为单位的大小,用户模式下,最大能分配到的总大小为2G, 分配好后并不意味着能够马上使用, 只有提交到物

2009-03-08 17:59:00 2182

原创 VirtualAlloc分配与回收

#include struct DEMOStruct{ BOOL  bUsed; BYTE  Buffer[2048 - sizeof(BOOL)];};class VMMGR{public: VMMGR(void); ~VMMGR(void);public: BOOL InitVMMgr(int nInitSectorCount); void CloseVMMgr(); BYTE *

2009-03-08 17:57:00 863

原创 枚举内存状况

 #define SALFDELETE(pValue) / if (pValue) /  delete[] pValue; / pValue = NULL;struct stuMemInfo{ void    *pAllocAddr; wchar_t *pPageInitProtect; DWORD    dwReginSize; DWORD    dwState; wchar_t  *pSt

2009-03-01 21:23:00 619

原创 获取内存使用状况

 #include int _tmain(int argc, _TCHAR* argv[]){ MEMORYSTATUS myMemoryStatus; memset(&myMemoryStatus, 0, sizeof(MEMORYSTATUS)); myMemoryStatus.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus(&m

2009-03-01 16:26:00 445

原创 获取系统CPU和内存信息

#define SALFDELETE(pValue) / if(pValue) / delete[] pValue; / pValue = NULL;struct  strSysInfo{ DWORD    dwCPUNumber; wchar_t    *pArchitecture; wchar_t    *pProcessLevel; wchar_t    *pPrcessVersion;

2009-03-01 15:57:00 787

原创 CreateTimerQueueTimer学习

 #include VOID WINAPI WaitOrTimerCallBack(PVOID pContext, BOOLEAN bTimeOrWait);CRITICAL_SECTION g_cs;int _tmain(int argc, _TCHAR* argv[]){ wchar_t *pContent = (wchar_t *) malloc(sizeof(wchar_t)

2009-02-22 16:17:00 10352

原创 QueueUserWorkItem 初步学习

 DWORD WINAPI TestThreadPool(PVOID pContext);CRITICAL_SECTION g_cs;int _tmain(int argc, _TCHAR* argv[]){ InitializeCriticalSection(&g_cs); SECURITY_ATTRIBUTES sa; sa.bInheritHandle = TRUE; sa.nLen

2009-02-22 15:42:00 1373

原创 抄WINDOW核心编程中的 多单写多读锁,

#pragma once#include class CSWMRG{public: CSWMRG(void); ~CSWMRG(void);public: void WaitToRead(); void WaitToWrite(); void Done();private: CRITICAL_SECTION m_cs; HANDLE           m_hsemReaders; H

2009-02-15 22:04:00 904

原创 抄windows核心编程中很方便的一种加琐方式

使用临界区的一个类#include class CResLock{public: CResLock(void); ~CResLock(void);public: void Lock(void); void UnLock(void); BOOL IsLocked(void);private: CRITICAL_SECTION m_cs; int m_nLockNum;}; CRe

2009-02-15 11:17:00 456

原创 使用interlocked模仿CriticalSection 抄> 我加了注释

#include #include struct SHAREINFO{ DWORD dwSpinCount;  //循环查询的次数 volatile LONG   nLockCount; //任何线程调用Entry的次数 DWORD dwThreadID;  //表明当前使用濒界区的线程ID int   nRecurseCount;  //本线程调用Entry的次数};class Test

2009-02-10 22:23:00 450

原创 互斥锁的联用

#include #include #include void ReversePrintf(wchar_t *pContent);unsigned __stdcall TestSemaphore(void *pParams);struct AsynInfo{ wchar_t stringInfo[2][1024]; int     nUseIndex[2]; HANDLE  hSemaph

2009-02-09 21:02:00 353

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除