GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-docs-ja/library/ctypes.po at 3.13 · python/python-docs-ja Expand file tree/ Copy pathctypes.poMore file actions 5397 lines (4798 loc) · 217 KB / Copy pathctypes.poFile metadata and controls5397 lines (4798 loc) · 217 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # # Translators: # Arihiro TAKASE, 2023 # 石井明久, 2024 # Takanori Suzuki <[email protected]>, 2024 # tomo, 2025 # Nozomu Kaneko <[email protected]>, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-05-08 02:53-0300\n" "PO-Revision-Date: 2021-06-28 01:03+0000\n" "Last-Translator: Nozomu Kaneko <[email protected]>, 2025\n" "Language-Team: Japanese (https://app.transifex.com/python-doc/teams/5390/" "ja/)\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../library/ctypes.rst:2 msgid ":mod:`!ctypes` --- A foreign function library for Python" msgstr ":mod:`!ctypes` --- Python 用の外部関数ライブラリ" #: ../../library/ctypes.rst:9 msgid "**Source code:** :source:`Lib/ctypes`" msgstr "**ソースコード:** :source:`Lib/ctypes`" #: ../../library/ctypes.rst:13 msgid "" ":mod:`ctypes` is a foreign function library for Python. It provides C " "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" ":mod:`ctypes` は Python のための外部関数ライブラリです。このライブラリは C と" "互換性のあるデータ型を提供し、動的リンク/共有ライブラリ内の関数呼び出しを可能" "にします。動的リンク/共有ライブラリを純粋な Python でラップするために使うこと" "ができます。" #: ../../library/ctypes.rst:21 msgid "ctypes tutorial" msgstr "ctypes チュートリアル" #: ../../library/ctypes.rst:23 msgid "" "Note: The code samples in this tutorial use :mod:`doctest` to make sure that " "they actually work. Since some code samples behave differently under Linux, " "Windows, or macOS, they contain doctest directives in comments." msgstr "" "注意: このチュートリアルのコードサンプルは動作確認のために :mod:`doctest` を" "使います。コードサンプルの中には Linux、 Windows、あるいは macOS 上で異なる動" "作をするものがあるため、サンプルのコメントに doctest 命令を入れてあります。" #: ../../library/ctypes.rst:27 msgid "" "Note: Some code samples reference the ctypes :class:`c_int` type. On " "platforms where ``sizeof(long) == sizeof(int)`` it is an alias " "to :class:`c_long`. So, you should not be confused if :class:`c_long` is " "printed if you would expect :class:`c_int` --- they are actually the same " "type." msgstr "" "注意: いくつかのコードサンプルで ctypes の :class:`c_int` 型を参照していま" "す。 ``sizeof(long) == sizeof(int)`` であるようなプラットフォームでは、この型" "は :class:`c_long` のエイリアスです。そのため、 :class:`c_int` 型を想定してい" "るときに :class:`c_long` が表示されたとしても、混乱しないようにしてください " "--- 実際には同じ型なのです。" #: ../../library/ctypes.rst:35 msgid "Loading dynamic link libraries" msgstr "動的リンクライブラリをロードする" #: ../../library/ctypes.rst:37 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" "動的リンクライブラリをロードするために、 :mod:`ctypes` は *cdll* をエクスポー" "トします。 Windows では *windll* と *oledll* オブジェクトをエクスポートしま" "す。" #: ../../library/ctypes.rst:40 msgid "" "You load libraries by accessing them as attributes of these objects. *cdll* " "loads libraries which export functions using the standard ``cdecl`` calling " "convention, while *windll* libraries call functions using the ``stdcall`` " "calling convention. *oledll* also uses the ``stdcall`` calling convention, " "and assumes the functions return a Windows :c:type:`!HRESULT` error code. " "The error code is used to automatically raise an :class:`OSError` exception " "when the function call fails." msgstr "" #: ../../library/ctypes.rst:48 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias " "of :exc:`OSError`." msgstr "" "Windows エラーは以前は :exc:`WindowsError` を送出していましたが、これは現在で" "は :exc:`OSError` の別名になっています。" msgid "" "Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " "C library containing most standard C functions, and uses the ``cdecl`` " "calling convention::" msgstr "" "Windows での例を示します。\n" "``msvcrt`` は、標準 C 関数の大半を含む MS 標準 C ライブラリで、``cdecl`` 呼び" "出し規約を使用します。 ::" msgid "" ">>> from ctypes import *\n" ">>> print(windll.kernel32)\n" "<WinDLL 'kernel32', handle ... at ...>\n" ">>> print(cdll.msvcrt)\n" "<CDLL 'msvcrt', handle ... at ...>\n" ">>> libc = cdll.msvcrt\n" ">>>" msgstr "" ">>> from ctypes import *\n" ">>> print(windll.kernel32)\n" "<WinDLL 'kernel32', handle ... at ...>\n" ">>> print(cdll.msvcrt)\n" "<CDLL 'msvcrt', handle ... at ...>\n" ">>> libc = cdll.msvcrt\n" ">>>" #: ../../library/ctypes.rst:65 msgid "Windows appends the usual ``.dll`` file suffix automatically." msgstr "Windows では通常の ``.dll`` ファイル拡張子を自動的に追加します。" #: ../../library/ctypes.rst:68 msgid "" "Accessing the standard C library through ``cdll.msvcrt`` will use an " "outdated version of the library that may be incompatible with the one being " "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" "``cdll.msvcrt`` 経由で標準 C ライブラリにアクセスすると、Python が使用してい" "るライブラリとは互換性のない可能性のある、古いバージョンのライブラリが使用さ" "れます。可能な場合には、ネイティブ Python の機能を使用するか、``msvcrt`` モ" "ジュールをインポートして使用してください。" #: ../../library/ctypes.rst:73 msgid "" "On Linux, it is required to specify the filename *including* the extension " "to load a library, so attribute access can not be used to load libraries. " "Either the :meth:`~LibraryLoader.LoadLibrary` method of the dll loaders " "should be used, or you should load the library by creating an instance of " "CDLL by calling the constructor::" msgstr "" msgid "" ">>> cdll.LoadLibrary(\"libc.so.6\")\n" "<CDLL 'libc.so.6', handle ... at ...>\n" ">>> libc = CDLL(\"libc.so.6\")\n" ">>> libc\n" "<CDLL 'libc.so.6', handle ... at ...>\n" ">>>" msgstr "" ">>> cdll.LoadLibrary(\"libc.so.6\")\n" "<CDLL 'libc.so.6', handle ... at ...>\n" ">>> libc = CDLL(\"libc.so.6\")\n" ">>> libc\n" "<CDLL 'libc.so.6', handle ... at ...>\n" ">>>" #: ../../library/ctypes.rst:92 msgid "Accessing functions from loaded dlls" msgstr "ロードしたdllから関数にアクセスする" #: ../../library/ctypes.rst:94 msgid "Functions are accessed as attributes of dll objects::" msgstr "dll オブジェクトの属性として関数にアクセスします::" msgid "" ">>> libc.printf\n" "<_FuncPtr object at 0x...>\n" ">>> print(windll.kernel32.GetModuleHandleA)\n" "<_FuncPtr object at 0x...>\n" ">>> print(windll.kernel32.MyOwnFunction)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" " File \"ctypes.py\", line 239, in __getattr__\n" " func = _StdcallFuncPtr(name, self)\n" "AttributeError: function 'MyOwnFunction' not found\n" ">>>" msgstr "" ">>> libc.printf\n" "<_FuncPtr object at 0x...>\n" ">>> print(windll.kernel32.GetModuleHandleA)\n" "<_FuncPtr object at 0x...>\n" ">>> print(windll.kernel32.MyOwnFunction)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" " File \"ctypes.py\", line 239, in __getattr__\n" " func = _StdcallFuncPtr(name, self)\n" "AttributeError: function 'MyOwnFunction' not found\n" ">>>" msgid "" "Note that win32 system dlls like ``kernel32`` and ``user32`` often export " "ANSI as well as UNICODE versions of a function. The UNICODE version is " "exported with a ``W`` appended to the name, while the ANSI version is " "exported with an ``A`` appended to the name. The win32 ``GetModuleHandle`` " "function, which returns a *module handle* for a given module name, has the " "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" "``kernel32`` や ``user32`` などの win32 システム DLL は、関数の ANSI 版と " "UNICODE 版を両方エクスポートすることがよくあります。\n" "UNICODE 版は名前の末尾に ``W``、ANSI 版は ``A`` を付けてエクスポートされま" "す。\n" "指定したモジュール名の *モジュールハンドル* を返す win32 の " "``GetModuleHandle`` 関数には、以下の C プロトタイプがあります。\n" "UNICODE が定義されているかどうかに応じて、マクロが一方を ``GetModuleHandle`` " "として公開します。 ::" msgid "" "/* ANSI version */\n" "HMODULE GetModuleHandleA(LPCSTR lpModuleName);\n" "/* UNICODE version */\n" "HMODULE GetModuleHandleW(LPCWSTR lpModuleName);" msgstr "" "/* ANSI 版 */\n" "HMODULE GetModuleHandleA(LPCSTR lpModuleName);\n" "/* UNICODE 版 */\n" "HMODULE GetModuleHandleW(LPCWSTR lpModuleName);" #: ../../library/ctypes.rst:121 msgid "" "*windll* does not try to select one of them by magic, you must access the " "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" "*windll* は魔法を使ってどちらか一つを選ぶようなことはしません。" "``GetModuleHandleA`` もしくは ``GetModuleHandleW`` を明示的に指定して必要とす" "るバージョンにアクセスし、バイト列か文字列を使ってそれぞれ呼び出さなければな" "りません。" #: ../../library/ctypes.rst:125 msgid "" "Sometimes, dlls export functions with names which aren't valid Python " "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to " "use :func:`getattr` to retrieve the function::" msgstr "" "時には、 dll が関数を ``\"??2@YAPAXI@Z\"`` のような Python 識別子として有効で" "ない名前でエクスポートすることがあります。このような場合に関数を取り出すに" "は、 :func:`getattr` を使わなければなりません。::" msgid "" ">>> getattr(cdll.msvcrt, \"??2@YAPAXI@Z\")\n" "<_FuncPtr object at 0x...>\n" ">>>" msgstr "" ">>> getattr(cdll.msvcrt, \"??2@YAPAXI@Z\")\n" "<_FuncPtr object at 0x...>\n" ">>>" #: ../../library/ctypes.rst:133 msgid "" "On Windows, some dlls export functions not by name but by ordinal. These " "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" "Windows では、名前ではなく序数によって関数をエクスポートする dll もあります。" "こうした関数には序数を使って dll オブジェクトにインデックス指定することでアク" "セスします::" msgid "" ">>> cdll.kernel32[1]\n" "<_FuncPtr object at 0x...>\n" ">>> cdll.kernel32[0]\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" " File \"ctypes.py\", line 310, in __getitem__\n" " func = _StdcallFuncPtr(name, self)\n" "AttributeError: function ordinal 0 not found\n" ">>>" msgstr "" ">>> cdll.kernel32[1]\n" "<_FuncPtr object at 0x...>\n" ">>> cdll.kernel32[0]\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" " File \"ctypes.py\", line 310, in __getitem__\n" " func = _StdcallFuncPtr(name, self)\n" "AttributeError: function ordinal 0 not found\n" ">>>" #: ../../library/ctypes.rst:150 msgid "Calling functions" msgstr "関数を呼び出す" msgid "" "You can call these functions like any other Python callable. This example " "uses the ``rand()`` function, which takes no arguments and returns a pseudo-" "random integer::" msgstr "" "これらの関数は、ほかの Python の呼び出し可能オブジェクトと同じように呼び出せ" "ます。\n" "この例では、引数を取らず疑似乱数の整数を返す ``rand()`` 関数を使います。 ::" msgid "" ">>> print(libc.rand())\n" "1804289383" msgstr "" ">>> print(libc.rand())\n" "1804289383" msgid "" "On Windows, you can call the ``GetModuleHandleA()`` function, which returns " "a win32 module handle (passing ``None`` as single argument to call it with a " "``NULL`` pointer)::" msgstr "" "Windows では、win32 モジュールハンドルを返す ``GetModuleHandleA()`` 関数を呼" "び出せます (唯一の引数に ``None`` を渡すと、``NULL`` ポインタを渡して呼び出せ" "ます)。 ::" msgid "" ">>> print(hex(windll.kernel32.GetModuleHandleA(None)))\n" "0x1d000000\n" ">>>" msgstr "" ">>> print(hex(windll.kernel32.GetModuleHandleA(None)))\n" "0x1d000000\n" ">>>" #: ../../library/ctypes.rst:165 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" "``cdecl`` 呼び出し規約を使って ``stdcall`` 関数を呼び出したときに" "は、 :exc:`ValueError` が送出されます。逆の場合も同様です::" #: ../../library/ctypes.rst:168 msgid "" ">>> cdll.kernel32.GetModuleHandleA(None)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "ValueError: Procedure probably called with not enough arguments (4 bytes " "missing)\n" ">>>\n" "\n" ">>> windll.msvcrt.printf(b\"spam\")\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "ValueError: Procedure probably called with too many arguments (4 bytes in " "excess)\n" ">>>" msgstr "" #: ../../library/ctypes.rst:180 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" "正しい呼び出し規約を知るためには、呼び出したい関数についての C ヘッダファイル" "もしくはドキュメントを見なければなりません。" #: ../../library/ctypes.rst:183 msgid "" "On Windows, :mod:`ctypes` uses win32 structured exception handling to " "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" "Windows では、関数が無効な引数とともに呼び出された場合の一般保護例外によるク" "ラッシュを防ぐために、 :mod:`ctypes` は win32 構造化例外処理を使います::" msgid "" ">>> windll.kernel32.GetModuleHandleA(32)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "OSError: exception: access violation reading 0x00000020\n" ">>>" msgstr "" ">>> windll.kernel32.GetModuleHandleA(32)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "OSError: exception: access violation reading 0x00000020\n" ">>>" #: ../../library/ctypes.rst:193 msgid "" "There are, however, enough ways to crash Python with :mod:`ctypes`, so you " "should be careful anyway. The :mod:`faulthandler` module can be helpful in " "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" "しかしそれでも他に :mod:`ctypes` で Python がクラッシュする状況はあるので、ど" "ちらにせよ気を配るべきです。クラッシュのデバッグには、 :mod:`faulthandler` モ" "ジュールが役に立つ場合があります (例えば、誤った C ライブラリ呼び出しによって" "引き起こされたセグメンテーション違反) 。" msgid "" "``None``, integers, bytes objects and (unicode) strings are the only native " "Python objects that can directly be used as parameters in these function " "calls. ``None`` is passed as a C ``NULL`` pointer, bytes objects and strings " "are passed as pointer to the memory block that contains their data " "(:c:expr:`char *` or :c:expr:`wchar_t *`). Python integers are passed as " "the platform's default C :c:expr:`int` type, their value is masked to fit " "into the C type." msgstr "" "これらの関数呼び出しに引数として直接渡せる Python 標準のオブジェクトは、" "``None``、整数、バイト列オブジェクト、(Unicode) 文字列だけです。\n" "``None`` は C の ``NULL`` ポインタとして渡され、バイト列オブジェクトと文字列" "は、データを格納するメモリブロックへのポインタ (:c:expr:`char *` また" "は :c:expr:`wchar_t *`) として渡されます。\n" "Python の整数は、プラットフォームのデフォルトの C :c:expr:`int` 型として渡さ" "れ、その C 型に収まるよう値がマスクされます。" #: ../../library/ctypes.rst:205 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" "他のパラメータ型をもつ関数呼び出しに移る前に、 :mod:`ctypes` データ型について" "さらに学ぶ必要があります。" #: ../../library/ctypes.rst:212 ../../library/ctypes.rst:2388 msgid "Fundamental data types" msgstr "基本データ型" #: ../../library/ctypes.rst:214 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" ":mod:`ctypes` ではいくつもの C 互換のプリミティブなデータ型を定義しています:" #: ../../library/ctypes.rst:217 ../../library/ctypes.rst:273 msgid "ctypes type" msgstr "ctypes の型" #: ../../library/ctypes.rst:217 ../../library/ctypes.rst:273 msgid "C type" msgstr "C の型" #: ../../library/ctypes.rst:217 ../../library/ctypes.rst:273 msgid "Python type" msgstr "Python の型" #: ../../library/ctypes.rst:219 msgid ":class:`c_bool`" msgstr ":class:`c_bool`" #: ../../library/ctypes.rst:219 msgid ":c:expr:`_Bool`" msgstr ":c:expr:`_Bool`" #: ../../library/ctypes.rst:219 msgid "bool (1)" msgstr "bool (1)" #: ../../library/ctypes.rst:221 msgid ":class:`c_char`" msgstr ":class:`c_char`" #: ../../library/ctypes.rst:221 ../../library/ctypes.rst:225 msgid ":c:expr:`char`" msgstr ":c:expr:`char`" #: ../../library/ctypes.rst:221 msgid "1-character bytes object" msgstr "1文字のバイト列オブジェクト" #: ../../library/ctypes.rst:223 msgid ":class:`c_wchar`" msgstr ":class:`c_wchar`" #: ../../library/ctypes.rst:223 msgid ":c:type:`wchar_t`" msgstr ":c:type:`wchar_t`" #: ../../library/ctypes.rst:223 msgid "1-character string" msgstr "1文字の文字列" #: ../../library/ctypes.rst:225 msgid ":class:`c_byte`" msgstr ":class:`c_byte`" #: ../../library/ctypes.rst:225 ../../library/ctypes.rst:227 #: ../../library/ctypes.rst:229 ../../library/ctypes.rst:231 #: ../../library/ctypes.rst:233 ../../library/ctypes.rst:235 #: ../../library/ctypes.rst:237 ../../library/ctypes.rst:239 #: ../../library/ctypes.rst:241 ../../library/ctypes.rst:243 #: ../../library/ctypes.rst:246 ../../library/ctypes.rst:248 #: ../../library/ctypes.rst:251 msgid "int" msgstr "int" #: ../../library/ctypes.rst:227 msgid ":class:`c_ubyte`" msgstr ":class:`c_ubyte`" #: ../../library/ctypes.rst:227 msgid ":c:expr:`unsigned char`" msgstr ":c:expr:`unsigned char`" #: ../../library/ctypes.rst:229 msgid ":class:`c_short`" msgstr ":class:`c_short`" #: ../../library/ctypes.rst:229 msgid ":c:expr:`short`" msgstr ":c:expr:`short`" #: ../../library/ctypes.rst:231 msgid ":class:`c_ushort`" msgstr ":class:`c_ushort`" #: ../../library/ctypes.rst:231 msgid ":c:expr:`unsigned short`" msgstr ":c:expr:`unsigned short`" #: ../../library/ctypes.rst:233 msgid ":class:`c_int`" msgstr ":class:`c_int`" #: ../../library/ctypes.rst:233 msgid ":c:expr:`int`" msgstr ":c:expr:`int`" #: ../../library/ctypes.rst:235 msgid ":class:`c_uint`" msgstr ":class:`c_uint`" #: ../../library/ctypes.rst:235 msgid ":c:expr:`unsigned int`" msgstr ":c:expr:`unsigned int`" #: ../../library/ctypes.rst:237 msgid ":class:`c_long`" msgstr ":class:`c_long`" #: ../../library/ctypes.rst:237 msgid ":c:expr:`long`" msgstr ":c:expr:`long`" #: ../../library/ctypes.rst:239 msgid ":class:`c_ulong`" msgstr ":class:`c_ulong`" #: ../../library/ctypes.rst:239 msgid ":c:expr:`unsigned long`" msgstr ":c:expr:`unsigned long`" #: ../../library/ctypes.rst:241 msgid ":class:`c_longlong`" msgstr ":class:`c_longlong`" #: ../../library/ctypes.rst:241 msgid ":c:expr:`__int64` or :c:expr:`long long`" msgstr ":c:expr:`__int64` または :c:expr:`long long`" #: ../../library/ctypes.rst:243 msgid ":class:`c_ulonglong`" msgstr ":class:`c_ulonglong`" #: ../../library/ctypes.rst:243 msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" msgstr ":c:expr:`unsigned __int64` または :c:expr:`unsigned long long`" #: ../../library/ctypes.rst:246 msgid ":class:`c_size_t`" msgstr ":class:`c_size_t`" #: ../../library/ctypes.rst:246 msgid ":c:type:`size_t`" msgstr ":c:type:`size_t`" #: ../../library/ctypes.rst:248 msgid ":class:`c_ssize_t`" msgstr ":class:`c_ssize_t`" #: ../../library/ctypes.rst:248 msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" msgstr "" msgid ":class:`c_time_t`" msgstr ":class:`c_time_t`" msgid ":c:type:`time_t`" msgstr ":c:type:`time_t`" #: ../../library/ctypes.rst:253 msgid ":class:`c_float`" msgstr ":class:`c_float`" #: ../../library/ctypes.rst:253 msgid ":c:expr:`float`" msgstr ":c:expr:`float`" #: ../../library/ctypes.rst:253 ../../library/ctypes.rst:255 #: ../../library/ctypes.rst:257 msgid "float" msgstr "浮動小数点数" #: ../../library/ctypes.rst:255 msgid ":class:`c_double`" msgstr ":class:`c_double`" #: ../../library/ctypes.rst:255 msgid ":c:expr:`double`" msgstr ":c:expr:`double`" #: ../../library/ctypes.rst:257 msgid ":class:`c_longdouble`" msgstr ":class:`c_longdouble`" #: ../../library/ctypes.rst:257 msgid ":c:expr:`long double`" msgstr ":c:expr:`long double`" #: ../../library/ctypes.rst:259 msgid ":class:`c_char_p`" msgstr ":class:`c_char_p`" #: ../../library/ctypes.rst:259 msgid ":c:expr:`char *` (NUL terminated)" msgstr ":c:expr:`char *` (NUL 終端)" #: ../../library/ctypes.rst:259 msgid "bytes object or ``None``" msgstr "バイト列オブジェクトまたは ``None``" #: ../../library/ctypes.rst:261 msgid ":class:`c_wchar_p`" msgstr ":class:`c_wchar_p`" #: ../../library/ctypes.rst:261 msgid ":c:expr:`wchar_t *` (NUL terminated)" msgstr ":c:expr:`wchar_t *` (NUL 終端)" #: ../../library/ctypes.rst:261 msgid "string or ``None``" msgstr "文字列または ``None``" #: ../../library/ctypes.rst:263 msgid ":class:`c_void_p`" msgstr ":class:`c_void_p`" #: ../../library/ctypes.rst:263 msgid ":c:expr:`void *`" msgstr ":c:expr:`void *`" #: ../../library/ctypes.rst:263 msgid "int or ``None``" msgstr "整数または ``None``" #: ../../library/ctypes.rst:267 msgid "The constructor accepts any object with a truth value." msgstr "コンストラクタは任意のオブジェクトをその真偽値として受け取ります。" msgid "" "Additionally, if IEC 60559 compatible complex arithmetic (Annex G) is " "supported in both C and ``libffi``, the following complex types are " "available:" msgstr "" "さらに、C と ``libffi`` の両方が IEC 60559 に準拠した複素数演算 (附属書 G) を" "サポートする場合、以下の複素数型を利用できます:" msgid ":class:`c_float_complex`" msgstr ":class:`c_float_complex`" msgid ":c:expr:`float complex`" msgstr ":c:expr:`float complex`" #: ../../library/ctypes.rst:275 ../../library/ctypes.rst:277 #: ../../library/ctypes.rst:279 msgid "complex" msgstr "複素数" msgid ":class:`c_double_complex`" msgstr ":class:`c_double_complex`" msgid ":c:expr:`double complex`" msgstr ":c:expr:`double complex`" msgid ":class:`c_longdouble_complex`" msgstr ":class:`c_longdouble_complex`" msgid ":c:expr:`long double complex`" msgstr ":c:expr:`long double complex`" #: ../../library/ctypes.rst:283 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" "これら全ての型はその型を呼び出すことによって作成でき、オプションとして型と値" "が合っている初期化子を指定することができます::" msgid "" ">>> c_int()\n" "c_long(0)\n" ">>> c_wchar_p(\"Hello, World\")\n" "c_wchar_p(140018365411392)\n" ">>> c_ushort(-3)\n" "c_ushort(65533)\n" ">>>" msgstr "" ">>> c_int()\n" "c_long(0)\n" ">>> c_wchar_p(\"Hello, World\")\n" "c_wchar_p(140018365411392)\n" ">>> c_ushort(-3)\n" "c_ushort(65533)\n" ">>>" #: ../../library/ctypes.rst:294 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "これらの型は変更可能であり、値を後で変更することもできます::" msgid "" ">>> i = c_int(42)\n" ">>> print(i)\n" "c_long(42)\n" ">>> print(i.value)\n" "42\n" ">>> i.value = -99\n" ">>> print(i.value)\n" "-99\n" ">>>" msgstr "" ">>> i = c_int(42)\n" ">>> print(i)\n" "c_long(42)\n" ">>> print(i.value)\n" "42\n" ">>> i.value = -99\n" ">>> print(i.value)\n" "-99\n" ">>>" msgid "" "Assigning a new value to instances of the pointer " "types :class:`c_char_p`, :class:`c_wchar_p`, and :class:`c_void_p` changes " "the *memory location* they point to, *not the contents* of the memory block " "(of course not, because Python string objects are immutable)::" msgstr "" "ポインタ型 :class:`c_char_p`、:class:`c_wchar_p`、:class:`c_void_p` のインス" "タンスに新しい値を代入すると、そのポインタが指す *メモリ位置* が変わり、メモ" "リブロックの *内容は変わりません* (Python の文字列オブジェクトは不変なので、" "当然の動作です)。 ::" #: ../../library/ctypes.rst:311 msgid "" ">>> s = \"Hello, World\"\n" ">>> c_s = c_wchar_p(s)\n" ">>> print(c_s)\n" "c_wchar_p(139966785747344)\n" ">>> print(c_s.value)\n" "Hello World\n" ">>> c_s.value = \"Hi, there\"\n" ">>> print(c_s) # the memory location has changed\n" "c_wchar_p(139966783348904)\n" ">>> print(c_s.value)\n" "Hi, there\n" ">>> print(s) # first object is unchanged\n" "Hello, World\n" ">>>" msgstr "" #: ../../library/ctypes.rst:326 msgid "" "You should be careful, however, not to pass them to functions expecting " "pointers to mutable memory. If you need mutable memory blocks, ctypes has " "a :func:`create_string_buffer` function which creates these in various " "ways. The current memory block contents can be accessed (or changed) with " "the ``raw`` property; if you want to access it as NUL terminated string, use " "the ``value`` property::" msgstr "" "しかし、変更可能なメモリを指すポインタであることを想定している関数へそれらを" "渡さないように注意すべきです。もし変更可能なメモリブロックが必要なら、 " "ctypes には :func:`create_string_buffer` 関数があり、いろいろな方法で作成する" "ことできます。現在のメモリブロックの内容は ``raw`` プロパティを使ってアクセ" "ス (あるいは変更) することができます。もし現在のメモリブロックに NUL 終端文字" "列としてアクセスしたいなら、 ``value`` プロパティを使ってください::" msgid "" ">>> from ctypes import *\n" ">>> p = create_string_buffer(3) # create a 3 byte buffer, " "initialized to NUL bytes\n" ">>> print(sizeof(p), repr(p.raw))\n" "3 b'\\x00\\x00\\x00'\n" ">>> p = create_string_buffer(b\"Hello\") # create a buffer containing a " "NUL terminated string\n" ">>> print(sizeof(p), repr(p.raw))\n" "6 b'Hello\\x00'\n" ">>> print(repr(p.value))\n" "b'Hello'\n" ">>> p = create_string_buffer(b\"Hello\", 10) # create a 10 byte buffer\n" ">>> print(sizeof(p), repr(p.raw))\n" "10 b'Hello\\x00\\x00\\x00\\x00\\x00'\n" ">>> p.value = b\"Hi\"\n" ">>> print(sizeof(p), repr(p.raw))\n" "10 b'Hi\\x00lo\\x00\\x00\\x00\\x00\\x00'\n" ">>>" msgstr "" ">>> from ctypes import *\n" ">>> p = create_string_buffer(3) # NUL バイトで初期化した 3 バイト" "のバッファを作成します\n" ">>> print(sizeof(p), repr(p.raw))\n" "3 b'\\x00\\x00\\x00'\n" ">>> p = create_string_buffer(b\"Hello\") # NUL 終端文字列を含むバッファを" "作成します\n" ">>> print(sizeof(p), repr(p.raw))\n" "6 b'Hello\\x00'\n" ">>> print(repr(p.value))\n" "b'Hello'\n" ">>> p = create_string_buffer(b\"Hello\", 10) # 10 バイトのバッファを作成しま" "す\n" ">>> print(sizeof(p), repr(p.raw))\n" "10 b'Hello\\x00\\x00\\x00\\x00\\x00'\n" ">>> p.value = b\"Hi\"\n" ">>> print(sizeof(p), repr(p.raw))\n" "10 b'Hi\\x00lo\\x00\\x00\\x00\\x00\\x00'\n" ">>>" msgid "" "The :func:`create_string_buffer` function replaces the old :func:`!c_buffer` " "function (which is still available as an alias). To create a mutable memory " "block containing unicode characters of the C type :c:type:`wchar_t`, use " "the :func:`create_unicode_buffer` function." msgstr "" ":func:`create_string_buffer` 関数は、古い :func:`!c_buffer` 関数を置き換える" "ものです (後者は別名として引き続き利用できます)。\n" "C の :c:type:`wchar_t` 型の Unicode 文字を格納する変更可能なメモリブロックを" "作成するには、:func:`create_unicode_buffer` 関数を使ってください。" #: ../../library/ctypes.rst:359 msgid "Calling functions, continued" msgstr "続・関数を呼び出す" #: ../../library/ctypes.rst:361 msgid "" "Note that printf prints to the real standard output channel, *not* " "to :data:`sys.stdout`, so these examples will only work at the console " "prompt, not from within *IDLE* or *PythonWin*::" msgstr "" "printf は :data:`sys.stdout` では *なく* 、本物の標準出力チャンネルへプリント" "することに注意してください。したがって、これらの例はコンソールプロンプトでの" "み動作し、 *IDLE* や *PythonWin* では動作しません。::" msgid "" ">>> printf = libc.printf\n" ">>> printf(b\"Hello, %s\\n\", b\"World!\")\n" "Hello, World!\n" "14\n" ">>> printf(b\"Hello, %S\\n\", \"World!\")\n" "Hello, World!\n" "14\n" ">>> printf(b\"%d bottles of beer\\n\", 42)\n" "42 bottles of beer\n" "19\n" ">>> printf(b\"%f bottles of beer\\n\", 42.5)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "ctypes.ArgumentError: argument 2: TypeError: Don't know how to convert " "parameter 2\n" ">>>" msgstr "" ">>> printf = libc.printf\n" ">>> printf(b\"Hello, %s\\n\", b\"World!\")\n" "Hello, World!\n" "14\n" ">>> printf(b\"Hello, %S\\n\", \"World!\")\n" "Hello, World!\n" "14\n" ">>> printf(b\"%d bottles of beer\\n\", 42)\n" "42 bottles of beer\n" "19\n" ">>> printf(b\"%f bottles of beer\\n\", 42.5)\n" "Traceback (most recent call last):\n" " File \"<stdin>\", line 1, in <module>\n" "ctypes.ArgumentError: argument 2: TypeError: Don't know how to convert " "parameter 2\n" ">>>" #: ../../library/ctypes.rst:381 msgid "" "As has been mentioned before, all Python types except integers, strings, and " "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" "前に述べたように、必要な C のデータ型へ変換できるようにするためには、整数、文" "字列およびバイト列オブジェクトを除くすべての Python 型を対応す" "る :mod:`ctypes` 型でラップしなければなりません::" msgid "" ">>> printf(b\"An int %d, a double %f\\n\", 1234, c_double(3.14))\n" "An int 1234, a double 3.140000\n" "31\n" ">>>" msgstr "" ">>> printf(b\"An int %d, a double %f\\n\", 1234, c_double(3.14))\n" "An int 1234, a double 3.140000\n" "31\n" ">>>" msgid "Calling variadic functions" msgstr "可変長引数関数の呼び出し" msgid "" "On a lot of platforms calling variadic functions through ctypes is exactly " "the same as calling functions with a fixed number of parameters. On some " "platforms, and in particular ARM64 for Apple Platforms, the calling " "convention for variadic functions is different than that for regular " "functions." msgstr "" "多くのプラットフォームでは、ctypes を使った可変長引数関数の呼び出し方は、引数" "の数が固定の関数とまったく同じです。\n" "一部のプラットフォーム、特に Apple プラットフォームの ARM64 では、可変長引数" "関数の呼び出し規約が通常の関数とは異なります。" msgid "" "On those platforms it is required to specify the :attr:`~_CFuncPtr.argtypes` " "attribute for the regular, non-variadic, function arguments:" msgstr "" "それらのプラットフォームでは、可変長ではない通常の引数につい" "て :attr:`~_CFuncPtr.argtypes` 属性を指定する必要があります:" msgid "libc.printf.argtypes = [ctypes.c_char_p]" msgstr "libc.printf.argtypes = [ctypes.c_char_p]" msgid "" "Because specifying the attribute does not inhibit portability it is advised " "to always specify :attr:`~_CFuncPtr.argtypes` for all variadic functions." msgstr "" "この属性の指定は移植性を損なわないため、すべての可変長引数関数について常" "に :attr:`~_CFuncPtr.argtypes` を指定することを推奨します。" #: ../../library/ctypes.rst:414 msgid "Calling functions with your own custom data types" msgstr "自作のデータ型とともに関数を呼び出す" #: ../../library/ctypes.rst:416 msgid "" "You can also customize :mod:`ctypes` argument conversion to allow instances " "of your own classes be used as function arguments. :mod:`ctypes` looks for " "an :attr:`!_as_parameter_` attribute and uses this as the function argument. " "The attribute must be an integer, string, bytes, a :mod:`ctypes` instance, " "or an object with an :attr:`!_as_parameter_` attribute::" msgstr "" msgid "" ">>> class Bottles:\n" "... def __init__(self, number):\n" "... self._as_parameter_ = number\n" "...\n" ">>> bottles = Bottles(42)\n" ">>> printf(b\"%d bottles of beer\\n\", bottles)\n" "42 bottles of beer\n" "19\n" ">>>" msgstr "" ">>> class Bottles:\n" "... def __init__(self, number):\n" "... self._as_parameter_ = number\n" "...\n" ">>> bottles = Bottles(42)\n" ">>> printf(b\"%d bottles of beer\\n\", bottles)\n" "42 bottles of beer\n" "19\n" ">>>" #: ../../library/ctypes.rst:432 msgid "" "If you don't want to store the instance's data in the :attr:`!" "_as_parameter_` instance variable, you could define a :class:`property` " "which makes the attribute available on request." msgstr "" #: ../../library/ctypes.rst:440 msgid "Specifying the required argument types (function prototypes)" msgstr "要求される引数の型を指定する (関数プロトタイプ)" msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`~_CFuncPtr.argtypes` attribute." msgstr "" "DLL がエクスポートする関数の引数に必要な型は、:attr:`~_CFuncPtr.argtypes` 属" "性を設定して指定できます。" msgid "" ":attr:`~_CFuncPtr.argtypes` must be a sequence of C data types (the :func:`!" "printf` function is probably not a good example here, because it takes a " "variable number and different types of parameters depending on the format " "string, on the other hand this is quite handy to experiment with this " "feature)::" msgstr "" ":attr:`~_CFuncPtr.argtypes` は C のデータ型のシーケンスでなければなりません " |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |