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 }