Direct2D C++编程约定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Direct2D C++编程约定相关的知识,希望对你有一定的参考价值。

引用库

#include <windows.h>
// C RunTime Header Files:
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <wchar.h>
#include <math.h>
#include <d2d1.h>
#include <d2d1helper.h>
#include <dwrite.h>
#include <wincodec.h>

版本控制宏

 

pragma once
// Modify the following definitions if you need to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER              // Allow use of features specific to Windows 7 or later.
#define WINVER 0x0700       // Change this to the appropriate value to target other versions of Windows.
#endif
#ifndef _WIN32_WINNT        // Allow use of features specific to Windows 7 or later.
#define _WIN32_WINNT 0x0700 // Change this to the appropriate value to target other versions of Windows.
#endif
#ifndef UNICODE
#define UNICODE
#endif
#define WIN32_LEAN_AND_MEAN     // Exclude rarely-used items from Windows headers

 

断言宏

#ifndef Assert
#if defined( DEBUG ) || defined( _DEBUG )
#define Assert(b) if (!(b)) {OutputDebugStringA("Assert: " #b "\n");}
#else
#define Assert(b)
#endif //DEBUG || _DEBUG
#endif

 

HINSTANCE 宏

 

 

#ifndef HINST_THISCOMPONENT
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
#define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)
#endif

释放接口方法

 

template<class Interface>
inline void
SafeRelease(
Interface **ppInterfaceToRelease
)
{
    if (*ppInterfaceToRelease != NULL)
    {
        (*ppInterfaceToRelease)->Release();

        (*ppInterfaceToRelease) = NULL;
    }
}

 

以上是关于Direct2D C++编程约定的主要内容,如果未能解决你的问题,请参考以下文章

Direct2D 设备中的 C++ 绘图弧

C++ COM、Direct2D、Win32 和 WM_CLOSE

DLL编程中引用其它DLL库的问题

祭奠一年前写 Direct2D demo

《深入实践C++模板编程》之六——标准库中的容器

如何使用 Direct2D 从 BITMAPINFOHEADER 和 BYTE 渲染位图