1 // -------------------------------------------------------------------------------
2 //
3 //         DXライブラリ        Windows用データタイプ定義ヘッダファイル
4 //
5 //                 Ver 3.22c
6 //
7 // -------------------------------------------------------------------------------
8 module dxlib_d.DxDataTypeWin;
9 
10 
11 version (Windows):
12 
13 extern (C):
14 nothrow @nogc:
15 
16 // インクルード ------------------------------------------------------------------
17 public import dxlib_d.DxCompileConfig;
18 
19 /+
20 #if defined(__c2__) && __clang_major__ == 3 && __clang_minor__ == 8
21 	//To avoid compile error
22 	//C:\Program Files (x86)\Windows Kits\8.1\Include\um\combaseapi.h(229,21): error : unknown type name 'IUnknown'
23 	//          static_cast<IUnknown*>(*pp);    // make sure everyone derives from IUnknown
24 	struct IUnknown;
25 #endif
26 +/
27 
28 private static import core.stdcpp.xutility;
29 private static import core.sys.windows.basetsd;
30 private static import core.sys.windows.basetyps;
31 private static import core.sys.windows.windef;
32 private static import core.sys.windows.wingdi;
33 private static import core.sys.windows.winnt;
34 private static import core.sys.windows.winuser;
35 private static import dxlib_d.DxLib;
36 
37 // DXライブラリに必要なlibファイルを、プロジェクトのカレントフォルダや
38 // コンパイラのデフォルトLIBパスに設定せずに使用される場合は以下の
39 // コメントを外してください
40 //version = DX_LIB_NOT_DEFAULTPATH;
41 
42 // ライブラリリンク定義--------------------------------------------------------
43 
44 version (DX_MAKE) {
45 } else {
46 	version (DX_LIB_NOT_DEFAULTPATH) {
47 	} else {
48 		version (DX_GCC_COMPILE) {
49 		} else {
50 			version (DX_SRC_COMPILE) {
51 			} else {
52 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
53 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
54 						version (Win64) {
55 							debug {
56 								//  描画部分の抜き出し
57 								pragma(lib, "DxDrawFunc_x64_d.lib");
58 
59 								version (Unicode) {
60 									//  DXライブラリ使用指定
61 									pragma(lib, "DxLibW_x64_d.lib");
62 
63 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
64 									pragma(lib, "DxUseCLibW_x64_d.lib");
65 								} else {
66 									//  DXライブラリ使用指定
67 									pragma(lib, "DxLib_x64_d.lib");
68 
69 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
70 									pragma(lib, "DxUseCLib_x64_d.lib");
71 								}
72 							} else {
73 								//  描画部分の抜き出し
74 								pragma(lib, "DxDrawFunc_x64.lib");
75 
76 								version (Unicode) {
77 									//  DXライブラリ使用指定
78 									pragma(lib, "DxLibW_x64.lib");
79 
80 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
81 									pragma(lib, "DxUseCLibW_x64.lib");
82 								} else {
83 									//  DXライブラリ使用指定
84 									pragma(lib, "DxLib_x64.lib");
85 
86 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
87 									pragma(lib, "DxUseCLib_x64.lib");
88 								}
89 							}
90 						} else {
91 							debug {
92 								//  描画部分の抜き出し
93 								pragma(lib, "DxDrawFunc_d.lib");
94 
95 								version (Unicode) {
96 									//  DXライブラリ使用指定
97 									pragma(lib, "DxLibW_d.lib");
98 
99 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
100 									pragma(lib, "DxUseCLibW_d.lib");
101 								} else {
102 									//  DXライブラリ使用指定
103 									pragma(lib, "DxLib_d.lib");
104 
105 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
106 									pragma(lib, "DxUseCLib_d.lib");
107 								}
108 							} else {
109 								//  描画部分の抜き出し
110 								pragma(lib, "DxDrawFunc.lib");
111 
112 								version (Unicode) {
113 									//  DXライブラリ使用指定
114 									pragma(lib, "DxLibW.lib");
115 
116 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
117 									pragma(lib, "DxUseCLibW.lib");
118 								} else {
119 									//  DXライブラリ使用指定
120 									pragma(lib, "DxLib.lib");
121 
122 									//  標準Cライブラリを使用する部分のlibファイルの使用指定
123 									pragma(lib, "DxUseCLib.lib");
124 								}
125 							}
126 						}
127 					} else {
128 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
129 							version (_DLL) {
130 								version (Win64) {
131 									debug {
132 										//  描画部分の抜き出し
133 										pragma(lib, "DxDrawFunc_vs2015_x64_MDd.lib");
134 
135 										version (Unicode) {
136 											//  DXライブラリ使用指定
137 											pragma(lib, "DxLibW_vs2015_x64_MDd.lib");
138 
139 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
140 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
141 												pragma(lib, "DxUseCLibW_vs2015_x64_ItrDbgLv0_MDd.lib");
142 											} else {
143 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
144 												pragma(lib, "DxUseCLibW_vs2015_x64_MDd.lib");
145 											}
146 										} else {
147 											//  DXライブラリ使用指定
148 											pragma(lib, "DxLib_vs2015_x64_MDd.lib");
149 
150 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
151 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
152 												pragma(lib, "DxUseCLib_vs2015_x64_ItrDbgLv0_MDd.lib");
153 											} else {
154 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
155 												pragma(lib, "DxUseCLib_vs2015_x64_MDd.lib");
156 											}
157 										}
158 									} else {
159 										//  描画部分の抜き出し
160 										pragma(lib, "DxDrawFunc_vs2015_x64_MD.lib");
161 
162 										version (Unicode) {
163 											//  DXライブラリ使用指定
164 											pragma(lib, "DxLibW_vs2015_x64_MD.lib");
165 
166 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
167 											pragma(lib, "DxUseCLibW_vs2015_x64_MD.lib");
168 										} else {
169 											//  DXライブラリ使用指定
170 											pragma(lib, "DxLib_vs2015_x64_MD.lib");
171 
172 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
173 											pragma(lib, "DxUseCLib_vs2015_x64_MD.lib");
174 										}
175 									}
176 								} else {
177 									debug {
178 										//  描画部分の抜き出し
179 										pragma(lib, "DxDrawFunc_vs2015_x86_MDd.lib");
180 
181 										version (Unicode) {
182 											//  DXライブラリ使用指定
183 											pragma(lib, "DxLibW_vs2015_x86_MDd.lib");
184 
185 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
186 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
187 												pragma(lib, "DxUseCLibW_vs2015_x86_ItrDbgLv0_MDd.lib");
188 											} else {
189 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
190 												pragma(lib, "DxUseCLibW_vs2015_x86_MDd.lib");
191 											}
192 										} else {
193 											//  DXライブラリ使用指定
194 											pragma(lib, "DxLib_vs2015_x86_MDd.lib");
195 
196 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
197 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
198 												pragma(lib, "DxUseCLib_vs2015_x86_ItrDbgLv0_MDd.lib");
199 											} else {
200 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
201 												pragma(lib, "DxUseCLib_vs2015_x86_MDd.lib");
202 											}
203 										}
204 									} else {
205 										//  描画部分の抜き出し
206 										pragma(lib, "DxDrawFunc_vs2015_x86_MD.lib");
207 
208 										version (Unicode) {
209 											//  DXライブラリ使用指定
210 											pragma(lib, "DxLibW_vs2015_x86_MD.lib");
211 
212 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
213 											pragma(lib, "DxUseCLibW_vs2015_x86_MD.lib");
214 										} else {
215 											//  DXライブラリ使用指定
216 											pragma(lib, "DxLib_vs2015_x86_MD.lib");
217 
218 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
219 											pragma(lib, "DxUseCLib_vs2015_x86_MD.lib");
220 										}
221 									}
222 								}
223 							} else {
224 								version (Win64) {
225 									debug {
226 										//  描画部分の抜き出し
227 										pragma(lib, "DxDrawFunc_vs2015_x64_MTd.lib");
228 
229 										version (Unicode) {
230 											//  DXライブラリ使用指定
231 											pragma(lib, "DxLibW_vs2015_x64_MTd.lib");
232 
233 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
234 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
235 												pragma(lib, "DxUseCLibW_vs2015_x64_ItrDbgLv0_MTd.lib");
236 											} else {
237 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
238 												pragma(lib, "DxUseCLibW_vs2015_x64_MTd.lib");
239 											}
240 										} else {
241 											//  DXライブラリ使用指定
242 											pragma(lib, "DxLib_vs2015_x64_MTd.lib");
243 
244 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
245 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
246 												pragma(lib, "DxUseCLib_vs2015_x64_ItrDbgLv0_MTd.lib");
247 											} else {
248 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
249 												pragma(lib, "DxUseCLib_vs2015_x64_MTd.lib");
250 											}
251 										}
252 									} else {
253 										//  描画部分の抜き出し
254 										pragma(lib, "DxDrawFunc_vs2015_x64_MT.lib");
255 
256 										version (Unicode) {
257 											//  DXライブラリ使用指定
258 											pragma(lib, "DxLibW_vs2015_x64_MT.lib");
259 
260 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
261 											pragma(lib, "DxUseCLibW_vs2015_x64_MT.lib");
262 										} else {
263 											//  DXライブラリ使用指定
264 											pragma(lib, "DxLib_vs2015_x64_MT.lib");
265 
266 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
267 											pragma(lib, "DxUseCLib_vs2015_x64_MT.lib");
268 										}
269 									}
270 								} else {
271 									debug {
272 										//  描画部分の抜き出し
273 										pragma(lib, "DxDrawFunc_vs2015_x86_MTd.lib");
274 
275 										version (Unicode) {
276 											//  DXライブラリ使用指定
277 											pragma(lib, "DxLibW_vs2015_x86_MTd.lib");
278 
279 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
280 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
281 												pragma(lib, "DxUseCLibW_vs2015_x86_ItrDbgLv0_MTd.lib");
282 											} else {
283 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
284 												pragma(lib, "DxUseCLibW_vs2015_x86_MTd.lib");
285 											}
286 										} else {
287 											//  DXライブラリ使用指定
288 											pragma(lib, "DxLib_vs2015_x86_MTd.lib");
289 
290 											static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
291 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
292 												pragma(lib, "DxUseCLib_vs2015_x86_ItrDbgLv0_MTd.lib");
293 											} else {
294 												//  標準Cライブラリを使用する部分のlibファイルの使用指定
295 												pragma(lib, "DxUseCLib_vs2015_x86_MTd.lib");
296 											}
297 										}
298 									} else {
299 										//  描画部分の抜き出し
300 										pragma(lib, "DxDrawFunc_vs2015_x86_MT.lib");
301 
302 										version (Unicode) {
303 											//  DXライブラリ使用指定
304 											pragma(lib, "DxLibW_vs2015_x86_MT.lib");
305 
306 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
307 											pragma(lib, "DxUseCLibW_vs2015_x86_MT.lib");
308 										} else {
309 											//  DXライブラリ使用指定
310 											pragma(lib, "DxLib_vs2015_x86_MT.lib");
311 
312 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
313 											pragma(lib, "DxUseCLib_vs2015_x86_MT.lib");
314 										}
315 									}
316 								}
317 							}
318 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
319 							version (Win64) {
320 								debug {
321 									//  描画部分の抜き出し
322 									pragma(lib, "DxDrawFunc_vs2012_x64_d.lib");
323 
324 									version (Unicode) {
325 										//  DXライブラリ使用指定
326 										pragma(lib, "DxLibW_vs2012_x64_d.lib");
327 
328 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
329 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
330 											pragma(lib, "DxUseCLibW_vs2013_x64_ItrDbgLv0_d.lib");
331 										} else {
332 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
333 											pragma(lib, "DxUseCLibW_vs2013_x64_d.lib");
334 										}
335 									} else {
336 										//  DXライブラリ使用指定
337 										pragma(lib, "DxLib_vs2012_x64_d.lib");
338 
339 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
340 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
341 											pragma(lib, "DxUseCLib_vs2013_x64_ItrDbgLv0_d.lib");
342 										} else {
343 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
344 											pragma(lib, "DxUseCLib_vs2013_x64_d.lib");
345 										}
346 									}
347 								} else {
348 									//  描画部分の抜き出し
349 									pragma(lib, "DxDrawFunc_vs2012_x64.lib");
350 
351 									version (Unicode) {
352 										//  DXライブラリ使用指定
353 										pragma(lib, "DxLibW_vs2012_x64.lib");
354 
355 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
356 										pragma(lib, "DxUseCLibW_vs2013_x64.lib");
357 									} else {
358 										//  DXライブラリ使用指定
359 										pragma(lib, "DxLib_vs2012_x64.lib");
360 
361 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
362 										pragma(lib, "DxUseCLib_vs2013_x64.lib");
363 									}
364 								}
365 							} else {
366 								debug {
367 									//  描画部分の抜き出し
368 									pragma(lib, "DxDrawFunc_vs2012_x86_d.lib");
369 
370 									version (Unicode) {
371 										//  DXライブラリ使用指定
372 										pragma(lib, "DxLibW_vs2012_x86_d.lib");
373 
374 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
375 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
376 											pragma(lib, "DxUseCLibW_vs2013_x86_ItrDbgLv0_d.lib");
377 										} else {
378 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
379 											pragma(lib, "DxUseCLibW_vs2013_x86_d.lib");
380 										}
381 									} else {
382 										//  DXライブラリ使用指定
383 										pragma(lib, "DxLib_vs2012_x86_d.lib");
384 
385 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
386 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
387 											pragma(lib, "DxUseCLib_vs2013_x86_ItrDbgLv0_d.lib");
388 										} else {
389 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
390 											pragma(lib, "DxUseCLib_vs2013_x86_d.lib");
391 										}
392 									}
393 								} else {
394 									//  描画部分の抜き出し
395 									pragma(lib, "DxDrawFunc_vs2012_x86.lib");
396 
397 									version (Unicode) {
398 										//  DXライブラリ使用指定
399 										pragma(lib, "DxLibW_vs2012_x86.lib");
400 
401 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
402 										pragma(lib, "DxUseCLibW_vs2013_x86.lib");
403 									} else {
404 										//  DXライブラリ使用指定
405 										pragma(lib, "DxLib_vs2012_x86.lib");
406 
407 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
408 										pragma(lib, "DxUseCLib_vs2013_x86.lib");
409 									}
410 								}
411 							}
412 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
413 							version (Win64) {
414 								debug {
415 									//  描画部分の抜き出し
416 									pragma(lib, "DxDrawFunc_vs2012_x64_d.lib");
417 
418 									version (Unicode) {
419 										//  DXライブラリ使用指定
420 										pragma(lib, "DxLibW_vs2012_x64_d.lib");
421 
422 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
423 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
424 											pragma(lib, "DxUseCLibW_vs2012_x64_ItrDbgLv0_d.lib");
425 										} else {
426 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
427 											pragma(lib, "DxUseCLibW_vs2012_x64_d.lib");
428 										}
429 									} else {
430 										//  DXライブラリ使用指定
431 										pragma(lib, "DxLib_vs2012_x64_d.lib");
432 
433 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
434 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
435 											pragma(lib, "DxUseCLib_vs2012_x64_ItrDbgLv0_d.lib");
436 										} else {
437 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
438 											pragma(lib, "DxUseCLib_vs2012_x64_d.lib");
439 										}
440 									}
441 								} else {
442 									//  描画部分の抜き出し
443 									pragma(lib, "DxDrawFunc_vs2012_x64.lib");
444 
445 									version (Unicode) {
446 										//  DXライブラリ使用指定
447 										pragma(lib, "DxLibW_vs2012_x64.lib");
448 
449 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
450 										pragma(lib, "DxUseCLibW_vs2012_x64.lib");
451 									} else {
452 										//  DXライブラリ使用指定
453 										pragma(lib, "DxLib_vs2012_x64.lib");
454 
455 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
456 										pragma(lib, "DxUseCLib_vs2012_x64.lib");
457 									}
458 								}
459 							} else {
460 								debug {
461 									//  描画部分の抜き出し
462 									pragma(lib, "DxDrawFunc_vs2012_x86_d.lib");
463 
464 									version (Unicode) {
465 										//  DXライブラリ使用指定
466 										pragma(lib, "DxLibW_vs2012_x86_d.lib");
467 
468 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
469 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
470 											pragma(lib, "DxUseCLibW_vs2012_x86_ItrDbgLv0_d.lib");
471 										} else {
472 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
473 											pragma(lib, "DxUseCLibW_vs2012_x86_d.lib");
474 										}
475 									} else {
476 										//  DXライブラリ使用指定
477 										pragma(lib, "DxLib_vs2012_x86_d.lib");
478 
479 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
480 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
481 											pragma(lib, "DxUseCLib_vs2012_x86_ItrDbgLv0_d.lib");
482 										} else {
483 											//  標準Cライブラリを使用する部分のlibファイルの使用指定
484 											pragma(lib, "DxUseCLib_vs2012_x86_d.lib");
485 										}
486 									}
487 								} else {
488 									//  描画部分の抜き出し
489 									pragma(lib, "DxDrawFunc_vs2012_x86.lib");
490 
491 									version (Unicode) {
492 										//  DXライブラリ使用指定
493 										pragma(lib, "DxLibW_vs2012_x86.lib");
494 
495 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
496 										pragma(lib, "DxUseCLibW_vs2012_x86.lib");
497 									} else {
498 										//  DXライブラリ使用指定
499 										pragma(lib, "DxLib_vs2012_x86.lib");
500 
501 										//  標準Cライブラリを使用する部分のlibファイルの使用指定
502 										pragma(lib, "DxUseCLib_vs2012_x86.lib");
503 									}
504 								}
505 							}
506 						}
507 					}
508 				} else {
509 					//  描画部分の抜き出し
510 					pragma(lib, "DxDrawFunc.lib");
511 
512 					version (Unicode) {
513 						//  DXライブラリ使用指定
514 						pragma(lib, "DxLibW.lib");
515 
516 						//  標準Cライブラリを使用する部分のlibファイルの使用指定
517 						pragma(lib, "DxUseCLibW.lib");
518 					} else {
519 						//  DXライブラリ使用指定
520 						pragma(lib, "DxLib.lib");
521 
522 						//  標準Cライブラリを使用する部分のlibファイルの使用指定
523 						pragma(lib, "DxUseCLib.lib");
524 					}
525 				}
526 
527 				debug {
528 					pragma(linkerDirective, "/NODEFAULTLIB:libcmt.lib");
529 					pragma(linkerDirective, "/NODEFAULTLIB:libc.lib");
530 					pragma(linkerDirective, "/NODEFAULTLIB:libcd.lib");
531 					//pragma(linkerDirective, "/NODEFAULTLIB:msvcrt.lib");
532 					//pragma(linkerDirective, "/NODEFAULTLIB:msvcrtd.lib");
533 				} else {
534 					pragma(linkerDirective, "/NODEFAULTLIB:libcmtd.lib");
535 					pragma(linkerDirective, "/NODEFAULTLIB:libc.lib");
536 					pragma(linkerDirective, "/NODEFAULTLIB:libcd.lib");
537 					//pragma(linkerDirective, "/NODEFAULTLIB:msvcrt.lib");
538 					//pragma(linkerDirective, "/NODEFAULTLIB:msvcrtd.lib");
539 				}
540 			}
541 
542 			//  C標準マルチスレッド対応ライブラリ
543 			//pragma(lib, "libcmt.lib");
544 
545 			//  Win32カーネルライブラリ
546 			pragma(lib, "kernel32.lib");
547 
548 			// Win32APIライブラリ
549 			//pragma(lib, "comctl32.lib");
550 
551 			//  Win32APIライブラリ
552 			pragma(lib, "user32.lib");
553 
554 			//  Win32APIライブラリ
555 			pragma(lib, "gdi32.lib");
556 
557 			//  Win32APIライブラリ
558 			pragma(lib, "advapi32.lib");
559 
560 			//  Win32APIライブラリ
561 			//pragma(lib, "ole32.lib");
562 
563 			//  マルチメディアライブラリ
564 			pragma(lib, "shell32.lib");
565 
566 			//  マルチメディアライブラリ
567 			//pragma(lib, "winmm.lib");
568 
569 			version (DX_NON_MOVIE) {
570 			} else {
571 				// DirectShowライブラリ
572 				//pragma(lib, "Strmiids.lib");
573 			}
574 
575 			version (DX_NON_NETWORK) {
576 			} else {
577 				//  WinSocketsライブラリ
578 				//pragma(lib, "wsock32.lib");
579 			}
580 
581 			version (DX_NON_KEYEX) {
582 			} else {
583 				// IME操作用ライブラリ
584 				//pragma(lib, "imm32.lib");
585 			}
586 
587 			version (DX_NON_ACM) {
588 			} else {
589 				// ACM操作用ライブラリ
590 				//pragma(lib, "msacm32.lib");
591 			}
592 
593 			version (DX_NON_BULLET_PHYSICS) {
594 			} else {
595 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
596 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
597 						version (DX_USE_VC8_BULLET_PHYSICS_LIB) {
598 							version (Win64) {
599 								debug {
600 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
601 									pragma(lib, "libbulletcollision_vc8_x64_d.lib");
602 
603 									pragma(lib, "libbulletdynamics_vc8_x64_d.lib");
604 									pragma(lib, "libbulletmath_vc8_x64_d.lib");
605 								} else {
606 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
607 									pragma(lib, "libbulletcollision_vc8_x64.lib");
608 
609 									pragma(lib, "libbulletdynamics_vc8_x64.lib");
610 									pragma(lib, "libbulletmath_vc8_x64.lib");
611 								}
612 							} else {
613 								debug {
614 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
615 									pragma(lib, "libbulletcollision_vc8_d.lib");
616 
617 									pragma(lib, "libbulletdynamics_vc8_d.lib");
618 									pragma(lib, "libbulletmath_vc8_d.lib");
619 								} else {
620 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
621 									pragma(lib, "libbulletcollision_vc8.lib");
622 
623 									pragma(lib, "libbulletdynamics_vc8.lib");
624 									pragma(lib, "libbulletmath_vc8.lib");
625 								}
626 							}
627 						} else {
628 							version (Win64) {
629 								debug {
630 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
631 									pragma(lib, "libbulletcollision_vc8_x64_d.lib");
632 
633 									pragma(lib, "libbulletdynamics_vc8_x64_d.lib");
634 									pragma(lib, "libbulletmath_vc8_x64_d.lib");
635 								} else {
636 									// Visual C++ 8.0でコンパイルしたBullet Physics ライブラリ
637 									pragma(lib, "libbulletcollision_vc8_x64.lib");
638 
639 									pragma(lib, "libbulletdynamics_vc8_x64.lib");
640 									pragma(lib, "libbulletmath_vc8_x64.lib");
641 								}
642 							} else {
643 								debug {
644 									// Visual C++ 6.0でコンパイルしたBullet Physics ライブラリ
645 									pragma(lib, "libbulletcollision_vc6_d.lib");
646 
647 									pragma(lib, "libbulletdynamics_vc6_d.lib");
648 									pragma(lib, "libbulletmath_vc6_d.lib");
649 								} else {
650 									// Visual C++ 6.0でコンパイルしたBullet Physics ライブラリ
651 									pragma(lib, "libbulletcollision_vc6.lib");
652 
653 									pragma(lib, "libbulletdynamics_vc6.lib");
654 									pragma(lib, "libbulletmath_vc6.lib");
655 								}
656 							}
657 						}
658 					} else {
659 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
660 							version (_DLL) {
661 								version (Win64) {
662 									debug {
663 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
664 											pragma(lib, "libbulletcollision_vs2015_x64_ItrDbgLv0_MDd.lib");
665 											pragma(lib, "libbulletdynamics_vs2015_x64_ItrDbgLv0_MDd.lib");
666 											pragma(lib, "libbulletmath_vs2015_x64_ItrDbgLv0_MDd.lib");
667 										} else {
668 											pragma(lib, "libbulletcollision_vs2015_x64_MDd.lib");
669 											pragma(lib, "libbulletdynamics_vs2015_x64_MDd.lib");
670 											pragma(lib, "libbulletmath_vs2015_x64_MDd.lib");
671 										}
672 									} else {
673 										pragma(lib, "libbulletcollision_vs2015_x64_MD.lib");
674 										pragma(lib, "libbulletdynamics_vs2015_x64_MD.lib");
675 										pragma(lib, "libbulletmath_vs2015_x64_MD.lib");
676 									}
677 								} else {
678 									debug {
679 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
680 											pragma(lib, "libbulletcollision_vs2015_x86_ItrDbgLv0_MDd.lib");
681 											pragma(lib, "libbulletdynamics_vs2015_x86_ItrDbgLv0_MDd.lib");
682 											pragma(lib, "libbulletmath_vs2015_x86_ItrDbgLv0_MDd.lib");
683 										} else {
684 											pragma(lib, "libbulletcollision_vs2015_x86_MDd.lib");
685 											pragma(lib, "libbulletdynamics_vs2015_x86_MDd.lib");
686 											pragma(lib, "libbulletmath_vs2015_x86_MDd.lib");
687 										}
688 									} else {
689 										pragma(lib, "libbulletcollision_vs2015_x86_MD.lib");
690 										pragma(lib, "libbulletdynamics_vs2015_x86_MD.lib");
691 										pragma(lib, "libbulletmath_vs2015_x86_MD.lib");
692 									}
693 								}
694 							} else {
695 								version (Win64) {
696 									debug {
697 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
698 											pragma(lib, "libbulletcollision_vs2015_x64_ItrDbgLv0_MTd.lib");
699 											pragma(lib, "libbulletdynamics_vs2015_x64_ItrDbgLv0_MTd.lib");
700 											pragma(lib, "libbulletmath_vs2015_x64_ItrDbgLv0_MTd.lib");
701 										} else {
702 											pragma(lib, "libbulletcollision_vs2015_x64_MTd.lib");
703 											pragma(lib, "libbulletdynamics_vs2015_x64_MTd.lib");
704 											pragma(lib, "libbulletmath_vs2015_x64_MTd.lib");
705 										}
706 									} else {
707 										pragma(lib, "libbulletcollision_vs2015_x64_MT.lib");
708 										pragma(lib, "libbulletdynamics_vs2015_x64_MT.lib");
709 										pragma(lib, "libbulletmath_vs2015_x64_MT.lib");
710 									}
711 								} else {
712 									debug {
713 										static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
714 											pragma(lib, "libbulletcollision_vs2015_x86_ItrDbgLv0_MTd.lib");
715 											pragma(lib, "libbulletdynamics_vs2015_x86_ItrDbgLv0_MTd.lib");
716 											pragma(lib, "libbulletmath_vs2015_x86_ItrDbgLv0_MTd.lib");
717 										} else {
718 											pragma(lib, "libbulletcollision_vs2015_x86_MTd.lib");
719 											pragma(lib, "libbulletdynamics_vs2015_x86_MTd.lib");
720 											pragma(lib, "libbulletmath_vs2015_x86_MTd.lib");
721 										}
722 									} else {
723 										pragma(lib, "libbulletcollision_vs2015_x86_MT.lib");
724 										pragma(lib, "libbulletdynamics_vs2015_x86_MT.lib");
725 										pragma(lib, "libbulletmath_vs2015_x86_MT.lib");
726 									}
727 								}
728 							}
729 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
730 							version (Win64) {
731 								debug {
732 									static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
733 										pragma(lib, "libbulletcollision_vs2013_x64_ItrDbgLv0_d.lib");
734 										pragma(lib, "libbulletdynamics_vs2013_x64_ItrDbgLv0_d.lib");
735 										pragma(lib, "libbulletmath_vs2013_x64_ItrDbgLv0_d.lib");
736 									} else {
737 										pragma(lib, "libbulletcollision_vs2013_x64_d.lib");
738 										pragma(lib, "libbulletdynamics_vs2013_x64_d.lib");
739 										pragma(lib, "libbulletmath_vs2013_x64_d.lib");
740 									}
741 								} else {
742 									pragma(lib, "libbulletcollision_vs2013_x64.lib");
743 									pragma(lib, "libbulletdynamics_vs2013_x64.lib");
744 									pragma(lib, "libbulletmath_vs2013_x64.lib");
745 								}
746 							} else {
747 								debug {
748 									static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
749 										pragma(lib, "libbulletcollision_vs2013_x86_ItrDbgLv0_d.lib");
750 										pragma(lib, "libbulletdynamics_vs2013_x86_ItrDbgLv0_d.lib");
751 										pragma(lib, "libbulletmath_vs2013_x86_ItrDbgLv0_d.lib");
752 									} else {
753 										pragma(lib, "libbulletcollision_vs2013_x86_d.lib");
754 										pragma(lib, "libbulletdynamics_vs2013_x86_d.lib");
755 										pragma(lib, "libbulletmath_vs2013_x86_d.lib");
756 									}
757 								} else {
758 									pragma(lib, "libbulletcollision_vs2013_x86.lib");
759 									pragma(lib, "libbulletdynamics_vs2013_x86.lib");
760 									pragma(lib, "libbulletmath_vs2013_x86.lib");
761 								}
762 							}
763 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
764 							version (Win64) {
765 								debug {
766 									static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
767 										pragma(lib, "libbulletcollision_vs2012_x64_ItrDbgLv0_d.lib");
768 										pragma(lib, "libbulletdynamics_vs2012_x64_ItrDbgLv0_d.lib");
769 										pragma(lib, "libbulletmath_vs2012_x64_ItrDbgLv0_d.lib");
770 									} else {
771 										pragma(lib, "libbulletcollision_vs2012_x64_d.lib");
772 										pragma(lib, "libbulletdynamics_vs2012_x64_d.lib");
773 										pragma(lib, "libbulletmath_vs2012_x64_d.lib");
774 									}
775 								} else {
776 									pragma(lib, "libbulletcollision_vs2012_x64.lib");
777 									pragma(lib, "libbulletdynamics_vs2012_x64.lib");
778 									pragma(lib, "libbulletmath_vs2012_x64.lib");
779 								}
780 							} else {
781 								debug {
782 									static if ((__traits(compiles, core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL)) && (core.stdcpp.xutility._ITERATOR_DEBUG_LEVEL == 0)) {
783 										pragma(lib, "libbulletcollision_vs2012_x86_ItrDbgLv0_d.lib");
784 										pragma(lib, "libbulletdynamics_vs2012_x86_ItrDbgLv0_d.lib");
785 										pragma(lib, "libbulletmath_vs2012_x86_ItrDbgLv0_d.lib");
786 									} else {
787 										pragma(lib, "libbulletcollision_vs2012_x86_d.lib");
788 										pragma(lib, "libbulletdynamics_vs2012_x86_d.lib");
789 										pragma(lib, "libbulletmath_vs2012_x86_d.lib");
790 									}
791 								} else {
792 									pragma(lib, "libbulletcollision_vs2012_x86.lib");
793 									pragma(lib, "libbulletdynamics_vs2012_x86.lib");
794 									pragma(lib, "libbulletmath_vs2012_x86.lib");
795 								}
796 							}
797 						}
798 					}
799 				} else {
800 					// Bullet Physics ライブラリ
801 					pragma(lib, "libbulletcollision.lib");
802 
803 					pragma(lib, "libbulletdynamics.lib");
804 					pragma(lib, "libbulletmath.lib");
805 				}
806 			}
807 
808 			version (DX_NON_TIFFREAD) {
809 			} else {
810 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
811 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
812 						version (Win64) {
813 							debug {
814 								// TIFFライブラリ
815 								pragma(lib, "libtiff_x64_d.lib");
816 							} else {
817 								// TIFFライブラリ
818 								pragma(lib, "libtiff_x64.lib");
819 							}
820 						} else {
821 							debug {
822 								// TIFFライブラリ
823 								pragma(lib, "libtiff_d.lib");
824 							} else {
825 								// TIFFライブラリ
826 								pragma(lib, "libtiff.lib");
827 							}
828 						}
829 					} else {
830 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
831 							version (_DLL) {
832 								version (Win64) {
833 									debug {
834 										// TIFFライブラリ
835 										pragma(lib, "libtiff_vs2015_x64_MDd.lib");
836 									} else {
837 										// TIFFライブラリ
838 										pragma(lib, "libtiff_vs2015_x64_MD.lib");
839 									}
840 								} else {
841 									debug {
842 										// TIFFライブラリ
843 										pragma(lib, "libtiff_vs2015_x86_MDd.lib");
844 									} else {
845 										// TIFFライブラリ
846 										pragma(lib, "libtiff_vs2015_x86_MD.lib");
847 									}
848 								}
849 							} else {
850 								version (Win64) {
851 									debug {
852 										// TIFFライブラリ
853 										pragma(lib, "libtiff_vs2015_x64_MTd.lib");
854 									} else {
855 										// TIFFライブラリ
856 										pragma(lib, "libtiff_vs2015_x64_MT.lib");
857 									}
858 								} else {
859 									debug {
860 										// TIFFライブラリ
861 										pragma(lib, "libtiff_vs2015_x86_MTd.lib");
862 									} else {
863 										// TIFFライブラリ
864 										pragma(lib, "libtiff_vs2015_x86_MT.lib");
865 									}
866 								}
867 							}
868 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
869 							version (Win64) {
870 								debug {
871 									// TIFFライブラリ
872 									pragma(lib, "libtiff_vs2013_x64_d.lib");
873 								} else {
874 									// TIFFライブラリ
875 									pragma(lib, "libtiff_vs2013_x64.lib");
876 								}
877 							} else {
878 								debug {
879 									// TIFFライブラリ
880 									pragma(lib, "libtiff_vs2013_x86_d.lib");
881 								} else {
882 									// TIFFライブラリ
883 									pragma(lib, "libtiff_vs2013_x86.lib");
884 								}
885 							}
886 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
887 							version (Win64) {
888 								debug {
889 									// TIFFライブラリ
890 									pragma(lib, "libtiff_vs2012_x64_d.lib");
891 								} else {
892 									// TIFFライブラリ
893 									pragma(lib, "libtiff_vs2012_x64.lib");
894 								}
895 							} else {
896 								debug {
897 									// TIFFライブラリ
898 									pragma(lib, "libtiff_vs2012_x86_d.lib");
899 								} else {
900 									// TIFFライブラリ
901 									pragma(lib, "libtiff_vs2012_x86.lib");
902 								}
903 							}
904 						}
905 					}
906 				} else {
907 					// TIFFライブラリ
908 					pragma(lib, "libtiff.lib");
909 				}
910 			}
911 
912 			version (DX_NON_PNGREAD) {
913 			} else {
914 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
915 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
916 						version (Win64) {
917 							debug {
918 								// PNGライブラリ
919 								pragma(lib, "libpng_x64_d.lib");
920 
921 								pragma(lib, "zlib_x64_d.lib");
922 							} else {
923 								// PNGライブラリ
924 								pragma(lib, "libpng_x64.lib");
925 
926 								pragma(lib, "zlib_x64.lib");
927 							}
928 						} else {
929 							debug {
930 								// PNGライブラリ
931 								pragma(lib, "libpng_d.lib");
932 
933 								pragma(lib, "zlib_d.lib");
934 							} else {
935 								// PNGライブラリ
936 								pragma(lib, "libpng.lib");
937 
938 								pragma(lib, "zlib.lib");
939 							}
940 						}
941 					} else {
942 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
943 							version (_DLL) {
944 								version (Win64) {
945 									debug {
946 										// PNGライブラリ
947 										pragma(lib, "libpng_vs2015_x64_MDd.lib");
948 
949 										pragma(lib, "zlib_vs2015_x64_MDd.lib");
950 									} else {
951 										// PNGライブラリ
952 										pragma(lib, "libpng_vs2015_x64_MD.lib");
953 
954 										pragma(lib, "zlib_vs2015_x64_MD.lib");
955 									}
956 								} else {
957 									debug {
958 										// PNGライブラリ
959 										pragma(lib, "libpng_vs2015_x86_MDd.lib");
960 
961 										pragma(lib, "zlib_vs2015_x86_MDd.lib");
962 									} else {
963 										// PNGライブラリ
964 										pragma(lib, "libpng_vs2015_x86_MD.lib");
965 
966 										pragma(lib, "zlib_vs2015_x86_MD.lib");
967 									}
968 								}
969 							} else {
970 								version (Win64) {
971 									debug {
972 										// PNGライブラリ
973 										pragma(lib, "libpng_vs2015_x64_MTd.lib");
974 
975 										pragma(lib, "zlib_vs2015_x64_MTd.lib");
976 									} else {
977 										// PNGライブラリ
978 										pragma(lib, "libpng_vs2015_x64_MT.lib");
979 
980 										pragma(lib, "zlib_vs2015_x64_MT.lib");
981 									}
982 								} else {
983 									debug {
984 										// PNGライブラリ
985 										pragma(lib, "libpng_vs2015_x86_MTd.lib");
986 
987 										pragma(lib, "zlib_vs2015_x86_MTd.lib");
988 									} else {
989 										// PNGライブラリ
990 										pragma(lib, "libpng_vs2015_x86_MT.lib");
991 
992 										pragma(lib, "zlib_vs2015_x86_MT.lib");
993 									}
994 								}
995 							}
996 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
997 							version (Win64) {
998 								debug {
999 									// PNGライブラリ
1000 									pragma(lib, "libpng_vs2013_x64_d.lib");
1001 
1002 									pragma(lib, "zlib_vs2013_x64_d.lib");
1003 								} else {
1004 									// PNGライブラリ
1005 									pragma(lib, "libpng_vs2013_x64.lib");
1006 
1007 									pragma(lib, "zlib_vs2013_x64.lib");
1008 								}
1009 							} else {
1010 								debug {
1011 									// PNGライブラリ
1012 									pragma(lib, "libpng_vs2013_x86_d.lib");
1013 
1014 									pragma(lib, "zlib_vs2013_x86_d.lib");
1015 								} else {
1016 									// PNGライブラリ
1017 									pragma(lib, "libpng_vs2013_x86.lib");
1018 
1019 									pragma(lib, "zlib_vs2013_x86.lib");
1020 								}
1021 							}
1022 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
1023 							version (Win64) {
1024 								debug {
1025 									// PNGライブラリ
1026 									pragma(lib, "libpng_vs2012_x64_d.lib");
1027 
1028 									pragma(lib, "zlib_vs2012_x64_d.lib");
1029 								} else {
1030 									// PNGライブラリ
1031 									pragma(lib, "libpng_vs2012_x64.lib");
1032 
1033 									pragma(lib, "zlib_vs2012_x64.lib");
1034 								}
1035 							} else {
1036 								debug {
1037 									// PNGライブラリ
1038 									pragma(lib, "libpng_vs2012_x86_d.lib");
1039 
1040 									pragma(lib, "zlib_vs2012_x86_d.lib");
1041 								} else {
1042 									// PNGライブラリ
1043 									pragma(lib, "libpng_vs2012_x86.lib");
1044 
1045 									pragma(lib, "zlib_vs2012_x86.lib");
1046 								}
1047 							}
1048 						}
1049 					}
1050 				} else {
1051 					// PNGライブラリ
1052 					pragma(lib, "libpng.lib");
1053 
1054 					pragma(lib, "zlib.lib");
1055 				}
1056 			}
1057 
1058 			version (DX_NON_JPEGREAD) {
1059 			} else {
1060 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
1061 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
1062 						version (Win64) {
1063 							debug {
1064 								// JPEGライブラリ
1065 								pragma(lib, "libjpeg_x64_d.lib");
1066 							} else {
1067 								// JPEGライブラリ
1068 								pragma(lib, "libjpeg_x64.lib");
1069 							}
1070 						} else {
1071 							debug {
1072 								// JPEGライブラリ
1073 								pragma(lib, "libjpeg_d.lib");
1074 							} else {
1075 								// JPEGライブラリ
1076 								pragma(lib, "libjpeg.lib");
1077 							}
1078 						}
1079 					} else {
1080 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
1081 							version (_DLL) {
1082 								version (Win64) {
1083 									debug {
1084 										// JPEGライブラリ
1085 										pragma(lib, "libjpeg_vs2015_x64_MDd.lib");
1086 									} else {
1087 										// JPEGライブラリ
1088 										pragma(lib, "libjpeg_vs2015_x64_MD.lib");
1089 									}
1090 								} else {
1091 									debug {
1092 										// JPEGライブラリ
1093 										pragma(lib, "libjpeg_vs2015_x86_MDd.lib");
1094 									} else {
1095 										// JPEGライブラリ
1096 										pragma(lib, "libjpeg_vs2015_x86_MD.lib");
1097 									}
1098 								}
1099 							} else {
1100 								version (Win64) {
1101 									debug {
1102 										// JPEGライブラリ
1103 										pragma(lib, "libjpeg_vs2015_x64_MTd.lib");
1104 									} else {
1105 										// JPEGライブラリ
1106 										pragma(lib, "libjpeg_vs2015_x64_MT.lib");
1107 									}
1108 								} else {
1109 									debug {
1110 										// JPEGライブラリ
1111 										pragma(lib, "libjpeg_vs2015_x86_MTd.lib");
1112 									} else {
1113 										// JPEGライブラリ
1114 										pragma(lib, "libjpeg_vs2015_x86_MT.lib");
1115 									}
1116 								}
1117 							}
1118 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
1119 							version (Win64) {
1120 								debug {
1121 									// JPEGライブラリ
1122 									pragma(lib, "libjpeg_vs2013_x64_d.lib");
1123 								} else {
1124 									// JPEGライブラリ
1125 									pragma(lib, "libjpeg_vs2013_x64.lib");
1126 								}
1127 							} else {
1128 								debug {
1129 									// JPEGライブラリ
1130 									pragma(lib, "libjpeg_vs2013_x86_d.lib");
1131 								} else {
1132 									// JPEGライブラリ
1133 									pragma(lib, "libjpeg_vs2013_x86.lib");
1134 								}
1135 							}
1136 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
1137 							version (Win64) {
1138 								debug {
1139 									// JPEGライブラリ
1140 									pragma(lib, "libjpeg_vs2012_x64_d.lib");
1141 								} else {
1142 									// JPEGライブラリ
1143 									pragma(lib, "libjpeg_vs2012_x64.lib");
1144 								}
1145 							} else {
1146 								debug {
1147 									// JPEGライブラリ
1148 									pragma(lib, "libjpeg_vs2012_x86_d.lib");
1149 								} else {
1150 									// JPEGライブラリ
1151 									pragma(lib, "libjpeg_vs2012_x86.lib");
1152 								}
1153 							}
1154 						}
1155 					}
1156 				} else {
1157 					// JPEGライブラリ
1158 					pragma(lib, "libjpeg.lib");
1159 				}
1160 			}
1161 
1162 			// OggVorbisライブラリ
1163 			version (DX_NON_OGGVORBIS) {
1164 			} else {
1165 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
1166 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
1167 						version (Win64) {
1168 							debug {
1169 								pragma(lib, "ogg_static_x64_d.lib");
1170 								pragma(lib, "vorbis_static_x64_d.lib");
1171 								pragma(lib, "vorbisfile_static_x64_d.lib");
1172 							} else {
1173 								pragma(lib, "ogg_static_x64.lib");
1174 								pragma(lib, "vorbis_static_x64.lib");
1175 								pragma(lib, "vorbisfile_static_x64.lib");
1176 							}
1177 						} else {
1178 							debug {
1179 								pragma(lib, "ogg_static_d.lib");
1180 								pragma(lib, "vorbis_static_d.lib");
1181 								pragma(lib, "vorbisfile_static_d.lib");
1182 							} else {
1183 								pragma(lib, "ogg_static.lib");
1184 								pragma(lib, "vorbis_static.lib");
1185 								pragma(lib, "vorbisfile_static.lib");
1186 							}
1187 						}
1188 					} else {
1189 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
1190 							version (_DLL) {
1191 								version (Win64) {
1192 									debug {
1193 										pragma(lib, "ogg_static_vs2015_x64_MDd.lib");
1194 										pragma(lib, "vorbis_static_vs2015_x64_MDd.lib");
1195 										pragma(lib, "vorbisfile_static_vs2015_x64_MDd.lib");
1196 									} else {
1197 										pragma(lib, "ogg_static_vs2015_x64_MD.lib");
1198 										pragma(lib, "vorbis_static_vs2015_x64_MD.lib");
1199 										pragma(lib, "vorbisfile_static_vs2015_x64_MD.lib");
1200 									}
1201 								} else {
1202 									debug {
1203 										pragma(lib, "ogg_static_vs2015_x86_MDd.lib");
1204 										pragma(lib, "vorbis_static_vs2015_x86_MDd.lib");
1205 										pragma(lib, "vorbisfile_static_vs2015_x86_MDd.lib");
1206 									} else {
1207 										pragma(lib, "ogg_static_vs2015_x86_MD.lib");
1208 										pragma(lib, "vorbis_static_vs2015_x86_MD.lib");
1209 										pragma(lib, "vorbisfile_static_vs2015_x86_MD.lib");
1210 									}
1211 								}
1212 							} else {
1213 								version (Win64) {
1214 									debug {
1215 										pragma(lib, "ogg_static_vs2015_x64_MTd.lib");
1216 										pragma(lib, "vorbis_static_vs2015_x64_MTd.lib");
1217 										pragma(lib, "vorbisfile_static_vs2015_x64_MTd.lib");
1218 									} else {
1219 										pragma(lib, "ogg_static_vs2015_x64_MT.lib");
1220 										pragma(lib, "vorbis_static_vs2015_x64_MT.lib");
1221 										pragma(lib, "vorbisfile_static_vs2015_x64_MT.lib");
1222 									}
1223 								} else {
1224 									debug {
1225 										pragma(lib, "ogg_static_vs2015_x86_MTd.lib");
1226 										pragma(lib, "vorbis_static_vs2015_x86_MTd.lib");
1227 										pragma(lib, "vorbisfile_static_vs2015_x86_MTd.lib");
1228 									} else {
1229 										pragma(lib, "ogg_static_vs2015_x86_MT.lib");
1230 										pragma(lib, "vorbis_static_vs2015_x86_MT.lib");
1231 										pragma(lib, "vorbisfile_static_vs2015_x86_MT.lib");
1232 									}
1233 								}
1234 							}
1235 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
1236 							version (Win64) {
1237 								debug {
1238 									pragma(lib, "ogg_static_vs2013_x64_d.lib");
1239 									pragma(lib, "vorbis_static_vs2013_x64_d.lib");
1240 									pragma(lib, "vorbisfile_static_vs2013_x64_d.lib");
1241 								} else {
1242 									pragma(lib, "ogg_static_vs2013_x64.lib");
1243 									pragma(lib, "vorbis_static_vs2013_x64.lib");
1244 									pragma(lib, "vorbisfile_static_vs2013_x64.lib");
1245 								}
1246 							} else {
1247 								debug {
1248 									pragma(lib, "ogg_static_vs2013_x86_d.lib");
1249 									pragma(lib, "vorbis_static_vs2013_x86_d.lib");
1250 									pragma(lib, "vorbisfile_static_vs2013_x86_d.lib");
1251 								} else {
1252 									pragma(lib, "ogg_static_vs2013_x86.lib");
1253 									pragma(lib, "vorbis_static_vs2013_x86.lib");
1254 									pragma(lib, "vorbisfile_static_vs2013_x86.lib");
1255 								}
1256 							}
1257 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
1258 							version (Win64) {
1259 								debug {
1260 									pragma(lib, "ogg_static_vs2012_x64_d.lib");
1261 									pragma(lib, "vorbis_static_vs2012_x64_d.lib");
1262 									pragma(lib, "vorbisfile_static_vs2012_x64_d.lib");
1263 								} else {
1264 									pragma(lib, "ogg_static_vs2012_x64.lib");
1265 									pragma(lib, "vorbis_static_vs2012_x64.lib");
1266 									pragma(lib, "vorbisfile_static_vs2012_x64.lib");
1267 								}
1268 							} else {
1269 								debug {
1270 									pragma(lib, "ogg_static_vs2012_x86_d.lib");
1271 									pragma(lib, "vorbis_static_vs2012_x86_d.lib");
1272 									pragma(lib, "vorbisfile_static_vs2012_x86_d.lib");
1273 								} else {
1274 									pragma(lib, "ogg_static_vs2012_x86.lib");
1275 									pragma(lib, "vorbis_static_vs2012_x86.lib");
1276 									pragma(lib, "vorbisfile_static_vs2012_x86.lib");
1277 								}
1278 							}
1279 						}
1280 					}
1281 				} else {
1282 					pragma(lib, "ogg_static.lib");
1283 					pragma(lib, "vorbis_static.lib");
1284 					pragma(lib, "vorbisfile_static.lib");
1285 				}
1286 			}
1287 
1288 			// OggTheoraライブラリ
1289 			version (DX_NON_OGGTHEORA) {
1290 			} else {
1291 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
1292 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
1293 						version (Win64) {
1294 							debug {
1295 								pragma(lib, "ogg_static_x64_d.lib");
1296 								pragma(lib, "vorbis_static_x64_d.lib");
1297 								pragma(lib, "vorbisfile_static_x64_d.lib");
1298 
1299 								pragma(lib, "libtheora_static_x64_d.lib");
1300 							} else {
1301 								pragma(lib, "ogg_static_x64.lib");
1302 								pragma(lib, "vorbis_static_x64.lib");
1303 								pragma(lib, "vorbisfile_static_x64.lib");
1304 
1305 								pragma(lib, "libtheora_static_x64.lib");
1306 							}
1307 						} else {
1308 							debug {
1309 								pragma(lib, "ogg_static_d.lib");
1310 								pragma(lib, "vorbis_static_d.lib");
1311 								pragma(lib, "vorbisfile_static_d.lib");
1312 
1313 								pragma(lib, "libtheora_static_d.lib");
1314 							} else {
1315 								pragma(lib, "ogg_static.lib");
1316 								pragma(lib, "vorbis_static.lib");
1317 								pragma(lib, "vorbisfile_static.lib");
1318 
1319 								pragma(lib, "libtheora_static.lib");
1320 							}
1321 						}
1322 					} else {
1323 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
1324 							version (_DLL) {
1325 								version (Win64) {
1326 									debug {
1327 										pragma(lib, "ogg_static_vs2015_x64_MDd.lib");
1328 										pragma(lib, "vorbis_static_vs2015_x64_MDd.lib");
1329 										pragma(lib, "vorbisfile_static_vs2015_x64_MDd.lib");
1330 
1331 										pragma(lib, "libtheora_static_vs2015_x64_MDd.lib");
1332 									} else {
1333 										pragma(lib, "ogg_static_vs2015_x64_MD.lib");
1334 										pragma(lib, "vorbis_static_vs2015_x64_MD.lib");
1335 										pragma(lib, "vorbisfile_static_vs2015_x64_MD.lib");
1336 
1337 										pragma(lib, "libtheora_static_vs2015_x64_MD.lib");
1338 									}
1339 								} else {
1340 									debug {
1341 										pragma(lib, "ogg_static_vs2015_x86_MDd.lib");
1342 										pragma(lib, "vorbis_static_vs2015_x86_MDd.lib");
1343 										pragma(lib, "vorbisfile_static_vs2015_x86_MDd.lib");
1344 
1345 										pragma(lib, "libtheora_static_vs2015_x86_MDd.lib");
1346 									} else {
1347 										pragma(lib, "ogg_static_vs2015_x86_MD.lib");
1348 										pragma(lib, "vorbis_static_vs2015_x86_MD.lib");
1349 										pragma(lib, "vorbisfile_static_vs2015_x86_MD.lib");
1350 
1351 										pragma(lib, "libtheora_static_vs2015_x86_MD.lib");
1352 									}
1353 								}
1354 							} else {
1355 								version (Win64) {
1356 									debug {
1357 										pragma(lib, "ogg_static_vs2015_x64_MTd.lib");
1358 										pragma(lib, "vorbis_static_vs2015_x64_MTd.lib");
1359 										pragma(lib, "vorbisfile_static_vs2015_x64_MTd.lib");
1360 
1361 										pragma(lib, "libtheora_static_vs2015_x64_MTd.lib");
1362 									} else {
1363 										pragma(lib, "ogg_static_vs2015_x64_MT.lib");
1364 										pragma(lib, "vorbis_static_vs2015_x64_MT.lib");
1365 										pragma(lib, "vorbisfile_static_vs2015_x64_MT.lib");
1366 
1367 										pragma(lib, "libtheora_static_vs2015_x64_MT.lib");
1368 									}
1369 								} else {
1370 									debug {
1371 										pragma(lib, "ogg_static_vs2015_x86_MTd.lib");
1372 										pragma(lib, "vorbis_static_vs2015_x86_MTd.lib");
1373 										pragma(lib, "vorbisfile_static_vs2015_x86_MTd.lib");
1374 
1375 										pragma(lib, "libtheora_static_vs2015_x86_MTd.lib");
1376 									} else {
1377 										pragma(lib, "ogg_static_vs2015_x86_MT.lib");
1378 										pragma(lib, "vorbis_static_vs2015_x86_MT.lib");
1379 										pragma(lib, "vorbisfile_static_vs2015_x86_MT.lib");
1380 
1381 										pragma(lib, "libtheora_static_vs2015_x86_MT.lib");
1382 									}
1383 								}
1384 							}
1385 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
1386 							version (Win64) {
1387 								debug {
1388 									pragma(lib, "ogg_static_vs2013_x64_d.lib");
1389 									pragma(lib, "vorbis_static_vs2013_x64_d.lib");
1390 									pragma(lib, "vorbisfile_static_vs2013_x64_d.lib");
1391 
1392 									pragma(lib, "libtheora_static_vs2013_x64_d.lib");
1393 								} else {
1394 									pragma(lib, "ogg_static_vs2013_x64.lib");
1395 									pragma(lib, "vorbis_static_vs2013_x64.lib");
1396 									pragma(lib, "vorbisfile_static_vs2013_x64.lib");
1397 
1398 									pragma(lib, "libtheora_static_vs2013_x64.lib");
1399 								}
1400 							} else {
1401 								debug {
1402 									pragma(lib, "ogg_static_vs2013_x86_d.lib");
1403 									pragma(lib, "vorbis_static_vs2013_x86_d.lib");
1404 									pragma(lib, "vorbisfile_static_vs2013_x86_d.lib");
1405 
1406 									pragma(lib, "libtheora_static_vs2013_x86_d.lib");
1407 								} else {
1408 									pragma(lib, "ogg_static_vs2013_x86.lib");
1409 									pragma(lib, "vorbis_static_vs2013_x86.lib");
1410 									pragma(lib, "vorbisfile_static_vs2013_x86.lib");
1411 
1412 									pragma(lib, "libtheora_static_vs2013_x86.lib");
1413 								}
1414 							}
1415 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
1416 							version (Win64) {
1417 								debug {
1418 									pragma(lib, "ogg_static_vs2012_x64_d.lib");
1419 									pragma(lib, "vorbis_static_vs2012_x64_d.lib");
1420 									pragma(lib, "vorbisfile_static_vs2012_x64_d.lib");
1421 
1422 									pragma(lib, "libtheora_static_vs2012_x64_d.lib");
1423 								} else {
1424 									pragma(lib, "ogg_static_vs2012_x64.lib");
1425 									pragma(lib, "vorbis_static_vs2012_x64.lib");
1426 									pragma(lib, "vorbisfile_static_vs2012_x64.lib");
1427 
1428 									pragma(lib, "libtheora_static_vs2012_x64.lib");
1429 								}
1430 							} else {
1431 								debug {
1432 									pragma(lib, "ogg_static_vs2012_x86_d.lib");
1433 									pragma(lib, "vorbis_static_vs2012_x86_d.lib");
1434 									pragma(lib, "vorbisfile_static_vs2012_x86_d.lib");
1435 
1436 									pragma(lib, "libtheora_static_vs2012_x86_d.lib");
1437 								} else {
1438 									pragma(lib, "ogg_static_vs2012_x86.lib");
1439 									pragma(lib, "vorbis_static_vs2012_x86.lib");
1440 									pragma(lib, "vorbisfile_static_vs2012_x86.lib");
1441 
1442 									pragma(lib, "libtheora_static_vs2012_x86.lib");
1443 								}
1444 							}
1445 						}
1446 					}
1447 				} else {
1448 					pragma(lib, "ogg_static.lib");
1449 					pragma(lib, "vorbis_static.lib");
1450 					pragma(lib, "vorbisfile_static.lib");
1451 
1452 					pragma(lib, "libtheora_static.lib");
1453 				}
1454 			}
1455 
1456 			// Opusライブラリ
1457 			version (DX_NON_OPUS) {
1458 			} else {
1459 				 static if (__traits(compiles, core.stdcpp.xutility._MSC_VER)) {
1460 					static if (core.stdcpp.xutility._MSC_VER < 1700) {
1461 						version (Win64) {
1462 							debug {
1463 								pragma(lib, "opus_x64_d.lib");
1464 								pragma(lib, "opusfile_x64_d.lib");
1465 								pragma(lib, "silk_common_x64_d.lib");
1466 								pragma(lib, "celt_x64_d.lib");
1467 							} else {
1468 								pragma(lib, "opus_x64.lib");
1469 								pragma(lib, "opusfile_x64.lib");
1470 								pragma(lib, "silk_common_x64.lib");
1471 								pragma(lib, "celt_x64.lib");
1472 							}
1473 						} else {
1474 							debug {
1475 								pragma(lib, "opus_d.lib");
1476 								pragma(lib, "opusfile_d.lib");
1477 								pragma(lib, "silk_common_d.lib");
1478 								pragma(lib, "celt_d.lib");
1479 							} else {
1480 								pragma(lib, "opus.lib");
1481 								pragma(lib, "opusfile.lib");
1482 								pragma(lib, "silk_common.lib");
1483 								pragma(lib, "celt.lib");
1484 							}
1485 						}
1486 					} else {
1487 						static if (core.stdcpp.xutility._MSC_VER >= 1900) {
1488 							version (_DLL) {
1489 								version (Win64) {
1490 									debug {
1491 										pragma(lib, "opus_vs2015_x64_MDd.lib");
1492 										pragma(lib, "opusfile_vs2015_x64_MDd.lib");
1493 										pragma(lib, "silk_common_vs2015_x64_MDd.lib");
1494 										pragma(lib, "celt_vs2015_x64_MDd.lib");
1495 									} else {
1496 										pragma(lib, "opus_vs2015_x64_MD.lib");
1497 										pragma(lib, "opusfile_vs2015_x64_MD.lib");
1498 										pragma(lib, "silk_common_vs2015_x64_MD.lib");
1499 										pragma(lib, "celt_vs2015_x64_MD.lib");
1500 									}
1501 								} else {
1502 									debug {
1503 										pragma(lib, "opus_vs2015_x86_MDd.lib");
1504 										pragma(lib, "opusfile_vs2015_x86_MDd.lib");
1505 										pragma(lib, "silk_common_vs2015_x86_MDd.lib");
1506 										pragma(lib, "celt_vs2015_x86_MDd.lib");
1507 									} else {
1508 										pragma(lib, "opus_vs2015_x86_MD.lib");
1509 										pragma(lib, "opusfile_vs2015_x86_MD.lib");
1510 										pragma(lib, "silk_common_vs2015_x86_MD.lib");
1511 										pragma(lib, "celt_vs2015_x86_MD.lib");
1512 									}
1513 								}
1514 							} else {
1515 								version (Win64) {
1516 									debug {
1517 										pragma(lib, "opus_vs2015_x64_MTd.lib");
1518 										pragma(lib, "opusfile_vs2015_x64_MTd.lib");
1519 										pragma(lib, "silk_common_vs2015_x64_MTd.lib");
1520 										pragma(lib, "celt_vs2015_x64_MTd.lib");
1521 									} else {
1522 										pragma(lib, "opus_vs2015_x64_MT.lib");
1523 										pragma(lib, "opusfile_vs2015_x64_MT.lib");
1524 										pragma(lib, "silk_common_vs2015_x64_MT.lib");
1525 										pragma(lib, "celt_vs2015_x64_MT.lib");
1526 									}
1527 								} else {
1528 									debug {
1529 										pragma(lib, "opus_vs2015_x86_MTd.lib");
1530 										pragma(lib, "opusfile_vs2015_x86_MTd.lib");
1531 										pragma(lib, "silk_common_vs2015_x86_MTd.lib");
1532 										pragma(lib, "celt_vs2015_x86_MTd.lib");
1533 									} else {
1534 										pragma(lib, "opus_vs2015_x86_MT.lib");
1535 										pragma(lib, "opusfile_vs2015_x86_MT.lib");
1536 										pragma(lib, "silk_common_vs2015_x86_MT.lib");
1537 										pragma(lib, "celt_vs2015_x86_MT.lib");
1538 									}
1539 								}
1540 							}
1541 						} else static if (core.stdcpp.xutility._MSC_VER >= 1800) {
1542 							version (Win64) {
1543 								debug {
1544 									pragma(lib, "opus_vs2013_x64_d.lib");
1545 									pragma(lib, "opusfile_vs2013_x64_d.lib");
1546 									pragma(lib, "silk_common_vs2013_x64_d.lib");
1547 									pragma(lib, "celt_vs2013_x64_d.lib");
1548 								} else {
1549 									pragma(lib, "opus_vs2013_x64.lib");
1550 									pragma(lib, "opusfile_vs2013_x64.lib");
1551 									pragma(lib, "silk_common_vs2013_x64.lib");
1552 									pragma(lib, "celt_vs2013_x64.lib");
1553 								}
1554 							} else {
1555 								debug {
1556 									pragma(lib, "opus_vs2013_x86_d.lib");
1557 									pragma(lib, "opusfile_vs2013_x86_d.lib");
1558 									pragma(lib, "silk_common_vs2013_x86_d.lib");
1559 									pragma(lib, "celt_vs2013_x86_d.lib");
1560 								} else {
1561 									pragma(lib, "opus_vs2013_x86.lib");
1562 									pragma(lib, "opusfile_vs2013_x86.lib");
1563 									pragma(lib, "silk_common_vs2013_x86.lib");
1564 									pragma(lib, "celt_vs2013_x86.lib");
1565 								}
1566 							}
1567 						} else static if (core.stdcpp.xutility._MSC_VER >= 1700) {
1568 							version (Win64) {
1569 								debug {
1570 									pragma(lib, "opus_vs2012_x64_d.lib");
1571 									pragma(lib, "opusfile_vs2012_x64_d.lib");
1572 									pragma(lib, "silk_common_vs2012_x64_d.lib");
1573 									pragma(lib, "celt_vs2012_x64_d.lib");
1574 								} else {
1575 									pragma(lib, "opus_vs2012_x64.lib");
1576 									pragma(lib, "opusfile_vs2012_x64.lib");
1577 									pragma(lib, "silk_common_vs2012_x64.lib");
1578 									pragma(lib, "celt_vs2012_x64.lib");
1579 								}
1580 							} else {
1581 								debug {
1582 									pragma(lib, "opus_vs2012_x86_d.lib");
1583 									pragma(lib, "opusfile_vs2012_x86_d.lib");
1584 									pragma(lib, "silk_common_vs2012_x86_d.lib");
1585 									pragma(lib, "celt_vs2012_x86_d.lib");
1586 								} else {
1587 									pragma(lib, "opus_vs2012_x86.lib");
1588 									pragma(lib, "opusfile_vs2012_x86.lib");
1589 									pragma(lib, "silk_common_vs2012_x86.lib");
1590 									pragma(lib, "celt_vs2012_x86.lib");
1591 								}
1592 							}
1593 						}
1594 					}
1595 				} else {
1596 					pragma(lib, "opus.lib");
1597 					pragma(lib, "opusfile.lib");
1598 					pragma(lib, "silk_common.lib");
1599 					pragma(lib, "celt.lib");
1600 				}
1601 			}
1602 		}
1603 	}
1604 }
1605 
1606 // Dxlibで使う型のエイリアスとか--------------------------------------------------------
1607 
1608 version (Win64) {
1609 	alias DWORD_PTR = core.sys.windows.winnt.ULONGLONG;
1610 } else {
1611 	alias DWORD_PTR = core.sys.windows.windef.DWORD;
1612 }
1613 
1614 version (Win64) {
1615 	alias LONG_PTR = long;
1616 } else {
1617 	alias LONG_PTR = int;
1618 }
1619 
1620 // 全プラットフォーム共通の型
1621 alias BOOL = core.sys.windows.windef.BOOL;
1622 alias BYTE = core.sys.windows.windef.BYTE;
1623 alias DWORD = core.sys.windows.windef.DWORD;
1624 alias FALSE = core.sys.windows.windef.FALSE;
1625 alias HBITMAP = core.sys.windows.windef.HBITMAP;
1626 alias HINSTANCE = core.sys.windows.windef.HINSTANCE;
1627 alias LONG = core.sys.windows.windef.LONG;
1628 alias LONGLONG = core.sys.windows.winnt.LONGLONG;
1629 alias SIZE = core.sys.windows.windef.SIZE;
1630 alias TCHAR = core.sys.windows.winnt.TCHAR;
1631 alias TRUE = core.sys.windows.windef.TRUE;
1632 alias ULONGLONG = core.sys.windows.winnt.ULONGLONG;
1633 alias WORD = core.sys.windows.windef.WORD;
1634 
1635 // DxFunctionWinで扱う型
1636 version (all) {
1637 	alias HANDLE = core.sys.windows.basetsd.HANDLE;
1638 	alias HICON = core.sys.windows.windef.HICON;
1639 	alias HMODULE = core.sys.windows.windef.HMODULE;
1640 	alias HRGN = core.sys.windows.windef.HRGN;
1641 	alias HWND = core.sys.windows.windef.HWND;
1642 	alias WNDPROC = core.sys.windows.winuser.WNDPROC;
1643 }
1644 
1645 //core.sys.windowsの以下の構造体名が不適切なので、必要とする部分だけ修正
1646 version (none) {
1647 	alias BITMAPINFO = core.sys.windows.wingdi.BITMAPINFO;
1648 	alias POINT = core.sys.windows.windef.POINT;
1649 	alias RECT = core.sys.windows.windef.RECT;
1650 
1651 	// DxFunctionWinで扱う型
1652 	version (all) {
1653 		alias GUID = core.sys.windows.basetyps.GUID;
1654 	}
1655 } else {
1656 	package struct tagBITMAPINFOHEADER
1657 	{
1658 		.DWORD biSize;
1659 		.LONG biWidth;
1660 		.LONG biHeight;
1661 		.WORD biPlanes;
1662 		.WORD biBitCount;
1663 		.DWORD biCompression;
1664 		.DWORD biSizeImage;
1665 		.LONG biXPelsPerMeter;
1666 		.LONG biYPelsPerMeter;
1667 		.DWORD biClrUsed;
1668 		.DWORD biClrImportant;
1669 	}
1670 
1671 	alias BITMAPINFOHEADER = .tagBITMAPINFOHEADER;
1672 	alias LPBITMAPINFOHEADER = /* FAR */.tagBITMAPINFOHEADER*;
1673 	alias PBITMAPINFOHEADER = .tagBITMAPINFOHEADER*;
1674 
1675 	package struct tagRGBQUAD
1676 	{
1677 		.BYTE rgbBlue;
1678 		.BYTE rgbGreen;
1679 		.BYTE rgbRed;
1680 		.BYTE rgbReserved;
1681 	}
1682 
1683 	alias RGBQUAD = .tagRGBQUAD;
1684 
1685 	package struct tagBITMAPINFO
1686 	{
1687 		.BITMAPINFOHEADER bmiHeader;
1688 
1689 		/* Dynamic array */
1690 		.RGBQUAD bmiColors;
1691 	}
1692 
1693 	alias BITMAPINFO = .tagBITMAPINFO;
1694 	alias LPBITMAPINFO = /* FAR */.tagBITMAPINFO*;
1695 	alias PBITMAPINFO = .tagBITMAPINFO*;
1696 
1697 	package struct tagPOINT
1698 	{
1699 		.LONG x;
1700 		.LONG y;
1701 	}
1702 
1703 	alias POINT = .tagPOINT;
1704 	alias PPOINT = .tagPOINT*;
1705 	alias NPPOINT = /* NEAR */ .tagPOINT*;
1706 	alias LPPOINT = /* FAR */ .tagPOINT*;
1707 
1708 	package struct tagRECT
1709 	{
1710 		.LONG left;
1711 		.LONG top;
1712 		.LONG right;
1713 		.LONG bottom;
1714 	}
1715 
1716 	alias RECT = .tagRECT;
1717 	alias PRECT = .tagRECT*;
1718 	alias NPRECT = /* NEAR */ .tagRECT*;
1719 	alias LPRECT = /* FAR */ .tagRECT*;
1720 	alias LPCRECT = const /* FAR */ (.tagRECT)*;
1721 
1722 	// DxFunctionWinで扱う型
1723 	version (all) {
1724 		align (1)
1725 		package struct _GUID
1726 		{
1727 			.DWORD Data1;
1728 			.WORD Data2;
1729 			.WORD Data3;
1730 			.BYTE[4] Data4;
1731 		}
1732 
1733 		alias GUID = ._GUID;
1734 	}
1735 }
1736 
1737 extern (C++, DxLib) {
1738 	// マクロ定義 --------------------------------------------------------------------
1739 
1740 	// 環境依存キーワードなど
1741 	/+
1742 	#ifndef FASTCALL
1743 		#define FASTCALL __fastcall
1744 	#endif
1745 	+/
1746 
1747 	// DirectInputのバージョン設定
1748 	enum DIRECTINPUT_VERSION = 0x0700;
1749 
1750 	/**
1751 	 * ACMを使用した読み込み処理
1752 	 */
1753 	enum DX_READSOUNDFUNCTION_ACM = 1 << (dxlib_d.DxLib.DX_READSOUNDFUNCTION_DEFAULT_NUM + 0);
1754 
1755 	/**
1756 	 * ACMを使用したMP3の読み込み処理
1757 	 */
1758 	enum DX_READSOUNDFUNCTION_MP3 = 1 << (dxlib_d.DxLib.DX_READSOUNDFUNCTION_DEFAULT_NUM + 1);
1759 
1760 	/**
1761 	 * DirectShowを使用したMP3の読み込み処理
1762 	 */
1763 	enum DX_READSOUNDFUNCTION_DSMP3 = 1 << (dxlib_d.DxLib.DX_READSOUNDFUNCTION_DEFAULT_NUM + 2);
1764 
1765 	/**
1766 	 * Media Foundationを使用した読み込み処理
1767 	 */
1768 	enum DX_READSOUNDFUNCTION_MF = 1 << (dxlib_d.DxLib.DX_READSOUNDFUNCTION_DEFAULT_NUM + 3);
1769 
1770 	// Direct3D9用テクスチャフォーマット
1771 	enum DX_TEXTUREFORMAT_DIRECT3D9_R8G8B8 = 1;
1772 	enum DX_TEXTUREFORMAT_DIRECT3D9_A8R8G8B8 = 2;
1773 	enum DX_TEXTUREFORMAT_DIRECT3D9_X8R8G8B8 = 3;
1774 	enum DX_TEXTUREFORMAT_DIRECT3D9_R5G6B5 = 4;
1775 	enum DX_TEXTUREFORMAT_DIRECT3D9_X1R5G5B5 = 5;
1776 	enum DX_TEXTUREFORMAT_DIRECT3D9_A1R5G5B5 = 6;
1777 	enum DX_TEXTUREFORMAT_DIRECT3D9_A4R4G4B4 = 7;
1778 	enum DX_TEXTUREFORMAT_DIRECT3D9_R3G3B2 = 8;
1779 	enum DX_TEXTUREFORMAT_DIRECT3D9_A8R3G3B2 = 9;
1780 	enum DX_TEXTUREFORMAT_DIRECT3D9_X4R4G4B4 = 10;
1781 	enum DX_TEXTUREFORMAT_DIRECT3D9_A2B10G10R10 = 11;
1782 	enum DX_TEXTUREFORMAT_DIRECT3D9_G16R16 = 12;
1783 	enum DX_TEXTUREFORMAT_DIRECT3D9_A8B8G8R8 = 13;
1784 	enum DX_TEXTUREFORMAT_DIRECT3D9_X8B8G8R8 = 14;
1785 	enum DX_TEXTUREFORMAT_DIRECT3D9_A2R10G10B10 = 15;
1786 	enum DX_TEXTUREFORMAT_DIRECT3D9_A16B16G16R16 = 16;
1787 	enum DX_TEXTUREFORMAT_DIRECT3D9_R16F = 17;
1788 	enum DX_TEXTUREFORMAT_DIRECT3D9_G16R16F = 18;
1789 	enum DX_TEXTUREFORMAT_DIRECT3D9_A16B16G16R16F = 19;
1790 	enum DX_TEXTUREFORMAT_DIRECT3D9_R32F = 20;
1791 	enum DX_TEXTUREFORMAT_DIRECT3D9_G32R32F = 21;
1792 	enum DX_TEXTUREFORMAT_DIRECT3D9_A32B32G32R32F = 22;
1793 
1794 	// エラーコード
1795 
1796 	/**
1797 	 * デスクトップが24ビットカラーモードだった
1798 	 */
1799 	enum DX_ERRORCODE_WIN_DESKTOP_24BIT_COLOR = 0x01010001;
1800 
1801 	/**
1802 	 * 二重起動
1803 	 */
1804 	enum DX_ERRORCODE_WIN_DOUBLE_START = 0x01010002;
1805 
1806 	/**
1807 	 * ウインドウの作成に失敗
1808 	 */
1809 	enum DX_ERRORCODE_WIN_FAILED_CREATEWINDOW = 0x01010003;
1810 
1811 	/**
1812 	 * 非同期読み込み処理を行うスレッドの立ち上げに失敗
1813 	 */
1814 	enum DX_ERRORCODE_WIN_FAILED_ASYNCLOAD_CREATE_THREAD = 0x01010004;
1815 
1816 	/**
1817 	 * DirectDraw7の取得に失敗
1818 	 */
1819 	enum DX_ERRORCODE_WIN_FAILED_CREATE_DIRECTDRAW7 = 0x01020001;
1820 
1821 	/**
1822 	 * DirectDraw7の初期化に失敗
1823 	 */
1824 	enum DX_ERRORCODE_WIN_FAILED_INITIALIZE_DIRECTDRAW7 = 0x01020002;
1825 
1826 	/**
1827 	 * 非対応の画面カラーモードが指定された
1828 	 */
1829 	enum DX_ERRORCODE_WIN_NOT_COMPATIBLE_SCREEN_COLOR_MODE = 0x01020003;
1830 
1831 	/**
1832 	 * Win32APIのChangeDisplaySettingsを使用した画面モードの変更に失敗
1833 	 */
1834 	enum DX_ERRORCODE_WIN_FAILED_CHANGE_DISPLAY_SETTINGS = 0x01020004;
1835 
1836 	// 構造体定義 --------------------------------------------------------------------
1837 
1838 	// テーブル-----------------------------------------------------------------------
1839 
1840 	// 内部大域変数宣言 --------------------------------------------------------------
1841 
1842 	// 関数プロトタイプ宣言-----------------------------------------------------------
1843 }