TNB Library
クラス | 名前空間 | マクロ定義 | 型定義 | 列挙型 | 関数
TnbDef.h ファイル

TNBライブラリの定義ヘッダ [詳解]

+ 被依存関係図:

[ソースコード]

クラス

class  CCopyImpossible
 [ETC] コピー不可能スーパークラス. [詳解]
 
class  CSimpleAscii
 簡易文字列管理クラス. [詳解]
 
class  CSimpleStr
 簡易文字列管理クラス. [詳解]
 
class  CWorkMemT< TYP >
 ワークメモリテンプレート. [詳解]
 

名前空間

namespace  TNB
 TNB Library
 
namespace  TNB::DX
 TNB DirectX Library
 
namespace  TNB::HASH
 TNB HASH関係
 
namespace  TNB::MFC
 TNB MFC Library
 
namespace  TNB::STRLIB
 文字列操作ライブラリ
 

マクロ定義

#define _BIN(X)   (TBinaryNotation<0##X>::VALUE)
 二進数表記定数 [詳解]
 
#define _BIT(X)   (1ui64<<(X))
 BIT演算 [詳解]
 
#define loop(VAR, CNT)   for ( size_t VAR = 0, VAR##_size = CNT; VAR < VAR##_size; VAR++ )
 loop構文. [詳解]
 
#define loop_dn(VAR, CNT)   for ( size_t VAR##_r = 0, VAR##_size = CNT, VAR = CNT - 1; VAR##_r < VAR##_size; VAR--, VAR##_r++ )
 loop構文. [詳解]
 
#define MESSAGE(d)   message(__FILE__"("_BDMSG(__LINE__)") : message:" d)
 ビルドメッセージ表示 [詳解]
 

型定義

typedef CWorkMemT< BYTE > CWorkMem
 ワークメモリ. [詳解]
 

列挙型

enum  EInstanceType { EI_Process , EI_Bitmap , EI_Icon , EI_String }
 インスタンスハンドル種. [詳解]
 

関数

DWORD CalcHash (size_t iLen, LPCVOID P)
 [計算] ハッシュ値計算. [詳解]
 
HINSTANCE GetInstanceHandleByTnb (EInstanceType type=EI_Process)
 [取得] インスタンスハンドル取得. [詳解]
 
void IdToString (LPSTR _pWork, DWORD dw)
 [作成] 識別用文字列作成(ASCII用) 32bit文字を一意の文字列に変換します。 [詳解]
 
void IdToString (LPWSTR _pWork, DWORD dw)
 [作成] 識別用文字列作成(UNICODE用) 32bit文字を一意の文字列に変換します。 [詳解]
 
template<typename T >
void IgnoreUnusedValue (const T &value)
 [宣言] 参照しない値宣言. [詳解]
 
void InitializeTnbLibrary (void)
 [設定] ライブラリ初期化. [詳解]
 
bool IsInRange (INDEX value, size_t size)
 [確認] 範囲チェック. [詳解]
 
template<typename T >
void MemCopy (T *_pDst, const void *pSrc, size_t len)
 [複製] メモリコピー [詳解]
 
bool PrintF (LPSTR _pWork, size_t iLen, LPCSTR lpFmt,...)
 [作成] 書式付き文字列作成(ASCII/SJIS用) [詳解]
 
bool PrintF (LPWSTR _pWork, size_t iLen, LPCWSTR lpFmt,...)
 [作成] 書式付き文字列作成(UNICODE用) [詳解]
 
void SetInstanceHandleByTnb (EInstanceType type, HINSTANCE hInstance)
 [設定] インスタンスハンドル指定. [詳解]
 
template<typename T >
void Swap (T &t1, T &t2)
 [変換] スワッパー. [詳解]
 
DWORD SwapEndian (DWORD val)
 [変換] エンディアン変換. [詳解]
 
ULONGLONG SwapEndian (ULONGLONG val)
 [変換] エンディアン変換. [詳解]
 
WORD SwapEndian (WORD val)
 [変換] エンディアン変換. [詳解]
 
void SystemErrorToMessageText (CSimpleStr &_str, DWORD dwError)
 [変換] SystemErrorコード文字列化. [詳解]
 
bool VPrintF (LPSTR _pWork, size_t iLen, LPCSTR lpFmt, va_list V)
 [作成] 書式付き文字列作成(ASCII/SJIS用) [詳解]
 
bool VPrintF (LPWSTR _pWork, size_t iLen, LPCWSTR lpFmt, va_list V)
 [作成] 書式付き文字列作成(UNICODE用) [詳解]
 
template<typename V >
void Zero (V &value)
 [設定] ゼロクリア. [詳解]
 

詳解

TNBライブラリの定義ヘッダ

すべてのヘッダにインクルードされています。

例外 "TnbNewDebug.h" , "TnbNewPlacement.h" ,"TnbNewThrow.h"

覚え書き
マクロ "_TnbUSINGNAMESPACE_DISABLE" が定義されていると、 TNB 以下の using namespace を行ないません。
-------------------------------------------------------------------
 TNB Library Project For Win32
 Copyright (C) 2001-2019 by TNB製作所 - Hide Komatsu
 上記者は、TNB Library(以下、本ライブラリと記す)の著作権を保持しま
 すが、以下の条件を満たす場合に限り、本ライブラリの使用・複製・改変・
 再配布することを無償で許諾します。
 (1) 本ライブラリをソースコードの形で利用する場合は、上記の著作権表
   示、この利用条件、および下記の無保証規定が、そのままの形でソー
   スコード中に含まれていること。
 (2) 本ライブラリを使用したバイナリ形式(本ライブラリを再利用が出来
   ないあらゆる形を含む)で再配布する場合には、再配布に伴うドキュ
   メント(利用者マニュアルなど)に、上記の著作権表示、この利用条
   件および下記の無保証規定を掲載すること。
 (3) 本ライブラリの利用により直接的または間接的に生じるいかなる損害
   からも、上記著作権者を免責すること。
 本ライブラリは,無保証で提供しているものです。上記著作権者は、本ラ
 イブラリに関して、いかなる保証も行ないません。また、本ライブラリの
 利用により直接的または間接的に生じたいかなる損害に関しても、その責
 任を負いません。
-------------------------------------------------------------------

TnbDef.h に定義があります。

マクロ定義詳解

◆ _BIN

#define _BIN (   X)    (TBinaryNotation<0##X>::VALUE)

二進数表記定数

引数
X二進数表記のリテラル(変数は不可)。11桁(0x7FF)まで対応(12桁以上は warning C4309 が発生)。
覚え書き
0,1以外を括弧内に入れるとエラー、または結果が不明になります。
結果は定数になります(コンパイル時に値が確定するため)。
使用例
int x = _BIN(00011101); // x は 0x1D (29) になる。
#define _BIN(X)
二進数表記定数
Definition: TnbDef.h:321

TnbDef.h321 行目に定義があります。

◆ _BIT

#define _BIT (   X)    (1ui64<<(X))

BIT演算

引数
X唯一立てたいBitナンバー(0〜63)。int 型の変数も可能。
覚え書き
括弧内に定数リテラル入れると定数になります(コンパイル時に値が確定するため)。
戻り値
(1<<X)の定数

TnbDef.h307 行目に定義があります。

◆ loop

#define loop (   VAR,
  CNT 
)    for ( size_t VAR = 0, VAR##_size = CNT; VAR < VAR##_size; VAR++ )

loop構文.

0 から CNT-1 まで繰り返します。

使用例1
loop ( i, 10 ){ Foo(i); } //Fooが 0〜9 の10回コールされる。
#define loop(VAR, CNT)
loop構文.
Definition: TnbDef.h:343
使用例2
vb.SetSize(5);
loop ( i, vb ){ // operator size_t() が効く
vb[i] = i; //Fooが 0〜4の5回コールされる。
}
virtual bool SetSize(size_t size)
[操作] サイズ指定
Definition: TnbVector.h:618
TNB::CVectorT< BYTE > CByteVector
BYTE配列管理クラス
Definition: TnbVector.h:1122
引数
VARループで使う変数の名前。size_t 型で宣言されます。
CNT回数。一度しか評価されません。 ループ中、size_t 型の VAR_size と言う名で保持されます。

TnbDef.h343 行目に定義があります。

◆ loop_dn

#define loop_dn (   VAR,
  CNT 
)    for ( size_t VAR##_r = 0, VAR##_size = CNT, VAR = CNT - 1; VAR##_r < VAR##_size; VAR--, VAR##_r++ )

loop構文.

CNT-1 から 0 まで繰り返します。

使用例
loop ( i, 10 ){ Foo(i); } //Fooが 9〜0 の10回コールされる。
引数
VARループで使う変数の名前。size_t 型で宣言されます。
CNT回数。一度しか評価されません。 ループ中、size_t 型の VAR_size と言う名で保持されます。

TnbDef.h355 行目に定義があります。

◆ MESSAGE

#define MESSAGE (   d)    message(__FILE__"("_BDMSG(__LINE__)") : message:" d)

ビルドメッセージ表示

使用例
#pragma MESSAGE("コンパイル中")
引数
dビルド中に表示したい文言

TnbDef.h297 行目に定義があります。