例子1,只有图片
例子2,含有链接的图片
例子3,图片+介绍文字

标题样式

例子3,图片+介绍文字
注意要用换行符号换行
标题h3是紫色,h4是蓝色
PS:最大宽度300px
超出300px自动换行,参见下一张
链接
例子4,链接图片+介绍文字

『EVA:破』 画面曝光

在公开的预告片中,虽然没有主役台词 但是由鹭巢诗郎创作的音乐缓缓流淌,加上动感十足的战斗场面依然能牢牢吸引眼球。在这个简短的预告篇中,可以看到《EVA:破》中登场的EVA2号机在空中乱舞的场面,与TV系列中有异曲同工之妙的初号机和3号机激烈战斗的场面,此外还有疑似新使徒的身影出没。
猛击查看

ATL碎语CAtlModule CAtlBaseModule

// CAtlModule模块基类
__declspec(selectany) CAtlModule* _pAtlModule = NULL; // 全局变量, 代表一个模块

struct _ATL_MODULE70
{
 UINT cbSize;
 LONG m_nLockCnt;
 _ATL_TERMFUNC_ELEM* m_pTermFuncs;
 CComCriticalSection m_csStaticDataInitAndTypeInfo;
};
typedef _ATL_MODULE70 _ATL_MODULE;

class ATL_NO_VTABLE CAtlModule : public _ATL_MODULE
{
 CAtlModule() throw()
 {
  // Should have only one instance of a class
  // derived from CAtlModule in a project.
  // 一个工程中仅有一个CAtlModule子类的实例
  // 其一般也是一个全局变量, 因为它会被赋值给_pAtlModule
  ATLASSERT(_pAtlModule == NULL);
  // _ATL_MODULE中的变量初始化
  cbSize = 0;
  m_nLockCnt = 0;
  m_pTermFuncs = NULL;
  
  _pAtlModule = this; // 赋值给_pAtlModule
  
  m_pGIT = NULL;

  if (FAILED(m_csStaticDataInitAndTypeInfo.Init()))
  {
   // 注意此if块中返回时, _pAtlModule已被赋值一个失败初始化的对象
   ATLTRACE(atlTraceGeneral, 0, _T("ERROR : Unable to initialize critical section in CAtlModule\n"));
   ATLASSERT(0);
   CAtlBaseModule::m_bInitFailed = true;
   return;
  }

  // Set cbSize on success.
  cbSize = sizeof(_ATL_MODULE);
 }
};

// CAtlBaseModule的定义和实现分别在VC\atlmfc\include\atlcore.h和VC\atlmfc\src\atl\atls\atlbase.cpp中
// atlbase.cpp定义了其一个全局变量_AtlBaseModule
#pragma init_seg( lib )
CAtlBaseModule _AtlBaseModule;
extern CAtlWinModule _AtlWinModule = CAtlWinModule();

struct _ATL_BASE_MODULE70
{
 UINT cbSize;
 HINSTANCE m_hInst;
 HINSTANCE m_hInstResource;
 bool m_bNT5orWin98;
 DWORD dwAtlBuildVer;
 const GUID* pguidVer;
 CComCriticalSection m_csResource;
 CSimpleArray<HINSTANCE> m_rgResourceInstance;
};
typedef _ATL_BASE_MODULE70 _ATL_BASE_MODULE;

class CAtlBaseModule : public _ATL_BASE_MODULE
{
 CAtlBaseModule::CAtlBaseModule() throw()
 {
  cbSize = sizeof(_ATL_BASE_MODULE);

  m_hInst = m_hInstResource = reinterpret_cast<HINSTANCE>(&__ImageBase);

  m_bNT5orWin98 = false;
  OSVERSIONINFO version;
  memset(&version, 0, sizeof(version));
  version.dwOSVersionInfoSize = sizeof(version);
  ::GetVersionEx(&version);
  if(version.dwPlatformId == VER_PLATFORM_WIN32_NT)
  {
   if(version.dwMajorVersion >= 5)
   {
    m_bNT5orWin98 = true;
   }
  }
  else if(version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
  {
   if((version.dwMajorVersion > 4) || ((version.dwMajorVersion == 4) &&
    (version.dwMinorVersion > 0)))
   {
    m_bNT5orWin98 = true;
   }
  }

  dwAtlBuildVer = _ATL_VER;
  pguidVer = &GUID_ATLVer70;

  if (FAILED(m_csResource.Init()))
  {
   ATLTRACE(atlTraceGeneral, 0, _T("ERROR : Unable to initialize critical section in CAtlBaseModule\n"));
   ATLASSERT(0);
   CAtlBaseModule::m_bInitFailed = true;
  }
 }
}

Wdm.h、Ntddk.h 和 Ntifs.h 的组织结构

Wdm.h、Ntddk.h 和 Ntifs.h 的组织结构

此主题尚未评级 - 评价此主题

在 Windows Vista 版本的 WDK 之前,用于驱动程序开发的主要头文件为 Wdm.hNtddk.h 和 Ntifs.h,它们包含很多重复声明。

从 Windows Vista 版本的 WDK 开始,Wdm.hNtddk.h 和 Ntifs.h 将按层次结构来组织并且不包含重复信息。上层的文件将包含下层的文件。每个函数和结构声明仅出现一次。

Ntifs.h 包含 Ntddk.h,而 Ntddk.h 又包含 Wdm.h。下图显示了此结构。

 

显示分层头文件的图显示分层头文件的图

 

除非您已创建旧头文件的自定义版本(不应这样做),否则您应能在不出现生成错误的情况下重新生成所有旧驱动程序。

Assembly Manifest

http://blog.csdn.net/xiaojianpitt/article/details/4269641

强制系统崩溃

http://bbs.maxthon.cn/viewthread.php?tid=279936&page=1

Forcing a System Crash from the Keyboard

宝贵的SCROLL LOCK键?!没有它如何强制Windows蓝屏?

Debugging a Stalled System

 

IE10中增强的内存保护

IE10中增强的内存保护

无觅相关文章插件,快速提升流量