⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sipref.html

📁 这是关于RFC3261实现sip的源代码
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" /><title>SIP - A Tool for Generating Python Bindings for C and C++ Libraries</title><meta name="copyright" content="Copyright (c) 2006 Riverbank Computing Limited" /><link rel="stylesheet" href="default.css" type="text/css" /></head><body><div class="document" id="sip-a-tool-for-generating-python-bindings-for-c-and-c-libraries"><h1 class="title">SIP - A Tool for Generating Python Bindings for C and C++ Libraries</h1><h2 class="subtitle" id="reference-guide">Reference Guide</h2><table class="docinfo" frame="void" rules="none"><col class="docinfo-name" /><col class="docinfo-content" /><tbody valign="top"><tr><th class="docinfo-name">Contact:</th><td><a class="first last reference" href="mailto:info&#64;riverbankcomputing.co.uk">info&#64;riverbankcomputing.co.uk</a></td></tr><tr><th class="docinfo-name">Version:</th><td>4.4.3</td></tr><tr><th class="docinfo-name">Copyright:</th><td>Copyright (c) 2006 Riverbank Computing Limited</td></tr></tbody></table><div class="contents topic" id="contents"><p class="topic-title first"><a name="contents">Contents</a></p><ul class="auto-toc simple"><li><a class="reference" href="#introduction" id="id22" name="id22">1&nbsp;&nbsp;&nbsp;Introduction</a><ul class="auto-toc"><li><a class="reference" href="#license" id="id23" name="id23">1.1&nbsp;&nbsp;&nbsp;License</a></li><li><a class="reference" href="#features" id="id24" name="id24">1.2&nbsp;&nbsp;&nbsp;Features</a></li><li><a class="reference" href="#sip-v3-x" id="id25" name="id25">1.3&nbsp;&nbsp;&nbsp;SIP v3.x</a></li><li><a class="reference" href="#sip-components" id="id26" name="id26">1.4&nbsp;&nbsp;&nbsp;SIP Components</a></li><li><a class="reference" href="#qt-support" id="id27" name="id27">1.5&nbsp;&nbsp;&nbsp;Qt Support</a></li></ul></li><li><a class="reference" href="#potential-incompatibilities-with-earlier-versions" id="id28" name="id28">2&nbsp;&nbsp;&nbsp;Potential Incompatibilities with Earlier Versions</a><ul class="auto-toc"><li><a class="reference" href="#sip-v4-4" id="id29" name="id29">2.1&nbsp;&nbsp;&nbsp;SIP v4.4</a></li></ul></li><li><a class="reference" href="#installing-sip" id="id30" name="id30">3&nbsp;&nbsp;&nbsp;Installing SIP</a><ul class="auto-toc"><li><a class="reference" href="#downloading-sip" id="id31" name="id31">3.1&nbsp;&nbsp;&nbsp;Downloading SIP</a></li><li><a class="reference" href="#configuring-sip" id="id32" name="id32">3.2&nbsp;&nbsp;&nbsp;Configuring SIP</a><ul class="auto-toc"><li><a class="reference" href="#configuring-sip-using-mingw" id="id33" name="id33">3.2.1&nbsp;&nbsp;&nbsp;Configuring SIP Using MinGW</a></li><li><a class="reference" href="#configuring-sip-using-the-borland-c-compiler" id="id34" name="id34">3.2.2&nbsp;&nbsp;&nbsp;Configuring SIP Using the Borland C++ Compiler</a></li></ul></li><li><a class="reference" href="#building-sip" id="id35" name="id35">3.3&nbsp;&nbsp;&nbsp;Building SIP</a></li></ul></li><li><a class="reference" href="#using-sip" id="id36" name="id36">4&nbsp;&nbsp;&nbsp;Using SIP</a><ul class="auto-toc"><li><a class="reference" href="#a-simple-c-example" id="id37" name="id37">4.1&nbsp;&nbsp;&nbsp;A Simple C++ Example</a></li><li><a class="reference" href="#id7" id="id38" name="id38">4.2&nbsp;&nbsp;&nbsp;A Simple C Example</a></li><li><a class="reference" href="#a-more-complex-c-example" id="id39" name="id39">4.3&nbsp;&nbsp;&nbsp;A More Complex C++ Example</a></li><li><a class="reference" href="#ownership-of-objects" id="id40" name="id40">4.4&nbsp;&nbsp;&nbsp;Ownership of Objects</a></li></ul></li><li><a class="reference" href="#the-sip-command-line" id="id41" name="id41">5&nbsp;&nbsp;&nbsp;The SIP Command Line</a></li><li><a class="reference" href="#sip-specification-files" id="id42" name="id42">6&nbsp;&nbsp;&nbsp;SIP Specification Files</a><ul class="auto-toc"><li><a class="reference" href="#syntax-definition" id="id43" name="id43">6.1&nbsp;&nbsp;&nbsp;Syntax Definition</a></li><li><a class="reference" href="#variable-numbers-of-arguments" id="id44" name="id44">6.2&nbsp;&nbsp;&nbsp;Variable Numbers of Arguments</a></li><li><a class="reference" href="#additional-sip-types" id="id45" name="id45">6.3&nbsp;&nbsp;&nbsp;Additional SIP Types</a><ul class="auto-toc"><li><a class="reference" href="#sip-anyslot" id="id46" name="id46">6.3.1&nbsp;&nbsp;&nbsp;SIP_ANYSLOT</a></li><li><a class="reference" href="#sip-pycallable" id="id47" name="id47">6.3.2&nbsp;&nbsp;&nbsp;SIP_PYCALLABLE</a></li><li><a class="reference" href="#sip-pydict" id="id48" name="id48">6.3.3&nbsp;&nbsp;&nbsp;SIP_PYDICT</a></li><li><a class="reference" href="#sip-pylist" id="id49" name="id49">6.3.4&nbsp;&nbsp;&nbsp;SIP_PYLIST</a></li><li><a class="reference" href="#sip-pyobject" id="id50" name="id50">6.3.5&nbsp;&nbsp;&nbsp;SIP_PYOBJECT</a></li><li><a class="reference" href="#sip-pyslice" id="id51" name="id51">6.3.6&nbsp;&nbsp;&nbsp;SIP_PYSLICE</a></li><li><a class="reference" href="#sip-pytuple" id="id52" name="id52">6.3.7&nbsp;&nbsp;&nbsp;SIP_PYTUPLE</a></li><li><a class="reference" href="#sip-pytype" id="id53" name="id53">6.3.8&nbsp;&nbsp;&nbsp;SIP_PYTYPE</a></li><li><a class="reference" href="#sip-qobject" id="id54" name="id54">6.3.9&nbsp;&nbsp;&nbsp;SIP_QOBJECT</a></li><li><a class="reference" href="#sip-rxobj-con" id="id55" name="id55">6.3.10&nbsp;&nbsp;&nbsp;SIP_RXOBJ_CON</a></li><li><a class="reference" href="#sip-rxobj-dis" id="id56" name="id56">6.3.11&nbsp;&nbsp;&nbsp;SIP_RXOBJ_DIS</a></li><li><a class="reference" href="#sip-signal" id="id57" name="id57">6.3.12&nbsp;&nbsp;&nbsp;SIP_SIGNAL</a></li><li><a class="reference" href="#sip-slot" id="id58" name="id58">6.3.13&nbsp;&nbsp;&nbsp;SIP_SLOT</a></li><li><a class="reference" href="#sip-slot-con" id="id59" name="id59">6.3.14&nbsp;&nbsp;&nbsp;SIP_SLOT_CON</a></li><li><a class="reference" href="#sip-slot-dis" id="id60" name="id60">6.3.15&nbsp;&nbsp;&nbsp;SIP_SLOT_DIS</a></li></ul></li></ul></li><li><a class="reference" href="#sip-directives" id="id61" name="id61">7&nbsp;&nbsp;&nbsp;SIP Directives</a><ul class="auto-toc"><li><a class="reference" href="#accesscode" id="id62" name="id62">7.1&nbsp;&nbsp;&nbsp;%AccessCode</a></li><li><a class="reference" href="#bigetcharbuffercode" id="id63" name="id63">7.2&nbsp;&nbsp;&nbsp;%BIGetCharBufferCode</a></li><li><a class="reference" href="#bigetreadbuffercode" id="id64" name="id64">7.3&nbsp;&nbsp;&nbsp;%BIGetReadBufferCode</a></li><li><a class="reference" href="#bigetsegcountcode" id="id65" name="id65">7.4&nbsp;&nbsp;&nbsp;%BIGetSegCountCode</a></li><li><a class="reference" href="#bigetwritebuffercode" id="id66" name="id66">7.5&nbsp;&nbsp;&nbsp;%BIGetWriteBufferCode</a></li><li><a class="reference" href="#cmodule" id="id67" name="id67">7.6&nbsp;&nbsp;&nbsp;%CModule</a></li><li><a class="reference" href="#convertfromtypecode" id="id68" name="id68">7.7&nbsp;&nbsp;&nbsp;%ConvertFromTypeCode</a></li><li><a class="reference" href="#converttosubclasscode" id="id69" name="id69">7.8&nbsp;&nbsp;&nbsp;%ConvertToSubClassCode</a></li><li><a class="reference" href="#converttotypecode" id="id70" name="id70">7.9&nbsp;&nbsp;&nbsp;%ConvertToTypeCode</a></li><li><a class="reference" href="#copying" id="id71" name="id71">7.10&nbsp;&nbsp;&nbsp;%Copying</a></li><li><a class="reference" href="#doc" id="id72" name="id72">7.11&nbsp;&nbsp;&nbsp;%Doc</a></li><li><a class="reference" href="#end" id="id73" name="id73">7.12&nbsp;&nbsp;&nbsp;%End</a></li><li><a class="reference" href="#exception" id="id74" name="id74">7.13&nbsp;&nbsp;&nbsp;%Exception</a></li><li><a class="reference" href="#exporteddoc" id="id75" name="id75">7.14&nbsp;&nbsp;&nbsp;%ExportedDoc</a></li><li><a class="reference" href="#feature" id="id76" name="id76">7.15&nbsp;&nbsp;&nbsp;%Feature</a></li><li><a class="reference" href="#gcclearcode" id="id77" name="id77">7.16&nbsp;&nbsp;&nbsp;%GCClearCode</a></li><li><a class="reference" href="#gctraversecode" id="id78" name="id78">7.17&nbsp;&nbsp;&nbsp;%GCTraverseCode</a></li><li><a class="reference" href="#getcode" id="id79" name="id79">7.18&nbsp;&nbsp;&nbsp;%GetCode</a></li><li><a class="reference" href="#if" id="id80" name="id80">7.19&nbsp;&nbsp;&nbsp;%If</a></li><li><a class="reference" href="#import" id="id81" name="id81">7.20&nbsp;&nbsp;&nbsp;%Import</a></li><li><a class="reference" href="#include" id="id82" name="id82">7.21&nbsp;&nbsp;&nbsp;%Include</a></li><li><a class="reference" href="#id14" id="id83" name="id83">7.22&nbsp;&nbsp;&nbsp;%License</a></li><li><a class="reference" href="#mappedtype" id="id84" name="id84">7.23&nbsp;&nbsp;&nbsp;%MappedType</a></li><li><a class="reference" href="#methodcode" id="id85" name="id85">7.24&nbsp;&nbsp;&nbsp;%MethodCode</a></li><li><a class="reference" href="#module" id="id86" name="id86">7.25&nbsp;&nbsp;&nbsp;%Module</a></li><li><a class="reference" href="#modulecode" id="id87" name="id87">7.26&nbsp;&nbsp;&nbsp;%ModuleCode</a></li><li><a class="reference" href="#moduleheadercode" id="id88" name="id88">7.27&nbsp;&nbsp;&nbsp;%ModuleHeaderCode</a></li><li><a class="reference" href="#optionalinclude" id="id89" name="id89">7.28&nbsp;&nbsp;&nbsp;%OptionalInclude</a></li><li><a class="reference" href="#platforms" id="id90" name="id90">7.29&nbsp;&nbsp;&nbsp;%Platforms</a></li><li><a class="reference" href="#postinitialisationcode" id="id91" name="id91">7.30&nbsp;&nbsp;&nbsp;%PostInitialisationCode</a></li><li><a class="reference" href="#preinitialisationcode" id="id92" name="id92">7.31&nbsp;&nbsp;&nbsp;%PreInitialisationCode</a></li><li><a class="reference" href="#raisecode" id="id93" name="id93">7.32&nbsp;&nbsp;&nbsp;%RaiseCode</a></li><li><a class="reference" href="#setcode" id="id94" name="id94">7.33&nbsp;&nbsp;&nbsp;%SetCode</a></li><li><a class="reference" href="#sipnoemitters" id="id95" name="id95">7.34&nbsp;&nbsp;&nbsp;%SIPNoEmitters</a></li><li><a class="reference" href="#timeline" id="id96" name="id96">7.35&nbsp;&nbsp;&nbsp;%Timeline</a></li><li><a class="reference" href="#typecode" id="id97" name="id97">7.36&nbsp;&nbsp;&nbsp;%TypeCode</a></li><li><a class="reference" href="#typeheadercode" id="id98" name="id98">7.37&nbsp;&nbsp;&nbsp;%TypeHeaderCode</a></li><li><a class="reference" href="#virtualcatchercode" id="id99" name="id99">7.38&nbsp;&nbsp;&nbsp;%VirtualCatcherCode</a></li></ul></li><li><a class="reference" href="#sip-annotations" id="id100" name="id100">8&nbsp;&nbsp;&nbsp;SIP Annotations</a><ul class="auto-toc"><li><a class="reference" href="#argument-annotations" id="id101" name="id101">8.1&nbsp;&nbsp;&nbsp;Argument Annotations</a><ul class="auto-toc"><li><a class="reference" href="#allownone" id="id102" name="id102">8.1.1&nbsp;&nbsp;&nbsp;AllowNone</a></li><li><a class="reference" href="#array" id="id103" name="id103">8.1.2&nbsp;&nbsp;&nbsp;Array</a></li><li><a class="reference" href="#arraysize" id="id104" name="id104">8.1.3&nbsp;&nbsp;&nbsp;ArraySize</a></li><li><a class="reference" href="#constrained" id="id105" name="id105">8.1.4&nbsp;&nbsp;&nbsp;Constrained</a></li><li><a class="reference" href="#getwrapper" id="id106" name="id106">8.1.5&nbsp;&nbsp;&nbsp;GetWrapper</a></li><li><a class="reference" href="#in" id="id107" name="id107">8.1.6&nbsp;&nbsp;&nbsp;In</a></li><li><a class="reference" href="#out" id="id108" name="id108">8.1.7&nbsp;&nbsp;&nbsp;Out</a></li><li><a class="reference" href="#transfer" id="id109" name="id109">8.1.8&nbsp;&nbsp;&nbsp;Transfer</a></li><li><a class="reference" href="#transferback" id="id110" name="id110">8.1.9&nbsp;&nbsp;&nbsp;TransferBack</a></li><li><a class="reference" href="#transferthis" id="id111" name="id111">8.1.10&nbsp;&nbsp;&nbsp;TransferThis</a></li></ul></li><li><a class="reference" href="#class-annotations" id="id112" name="id112">8.2&nbsp;&nbsp;&nbsp;Class Annotations</a><ul class="auto-toc"><li><a class="reference" href="#abstract" id="id113" name="id113">8.2.1&nbsp;&nbsp;&nbsp;Abstract</a></li><li><a class="reference" href="#delaydtor" id="id114" name="id114">8.2.2&nbsp;&nbsp;&nbsp;DelayDtor</a></li><li><a class="reference" href="#external" id="id115" name="id115">8.2.3&nbsp;&nbsp;&nbsp;External</a></li><li><a class="reference" href="#pyname" id="id116" name="id116">8.2.4&nbsp;&nbsp;&nbsp;PyName</a></li></ul></li><li><a class="reference" href="#enum-annotations" id="id117" name="id117">8.3&nbsp;&nbsp;&nbsp;Enum Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id17" id="id118" name="id118">8.3.1&nbsp;&nbsp;&nbsp;PyName</a></li></ul></li><li><a class="reference" href="#exception-annotations" id="id119" name="id119">8.4&nbsp;&nbsp;&nbsp;Exception Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id18" id="id120" name="id120">8.4.1&nbsp;&nbsp;&nbsp;PyName</a></li></ul></li><li><a class="reference" href="#function-annotations" id="id121" name="id121">8.5&nbsp;&nbsp;&nbsp;Function Annotations</a><ul class="auto-toc"><li><a class="reference" href="#autogen" id="id122" name="id122">8.5.1&nbsp;&nbsp;&nbsp;AutoGen</a></li><li><a class="reference" href="#default" id="id123" name="id123">8.5.2&nbsp;&nbsp;&nbsp;Default</a></li><li><a class="reference" href="#factory" id="id124" name="id124">8.5.3&nbsp;&nbsp;&nbsp;Factory</a></li><li><a class="reference" href="#newthread" id="id125" name="id125">8.5.4&nbsp;&nbsp;&nbsp;NewThread</a></li><li><a class="reference" href="#noderived" id="id126" name="id126">8.5.5&nbsp;&nbsp;&nbsp;NoDerived</a></li><li><a class="reference" href="#numeric" id="id127" name="id127">8.5.6&nbsp;&nbsp;&nbsp;Numeric</a></li><li><a class="reference" href="#posthook" id="id128" name="id128">8.5.7&nbsp;&nbsp;&nbsp;PostHook</a></li><li><a class="reference" href="#prehook" id="id129" name="id129">8.5.8&nbsp;&nbsp;&nbsp;PreHook</a></li><li><a class="reference" href="#id19" id="id130" name="id130">8.5.9&nbsp;&nbsp;&nbsp;PyName</a></li><li><a class="reference" href="#releasegil" id="id131" name="id131">8.5.10&nbsp;&nbsp;&nbsp;ReleaseGIL</a></li><li><a class="reference" href="#id20" id="id132" name="id132">8.5.11&nbsp;&nbsp;&nbsp;TransferBack</a></li></ul></li><li><a class="reference" href="#license-annotations" id="id133" name="id133">8.6&nbsp;&nbsp;&nbsp;License Annotations</a><ul class="auto-toc"><li><a class="reference" href="#licensee" id="id134" name="id134">8.6.1&nbsp;&nbsp;&nbsp;Licensee</a></li><li><a class="reference" href="#signature" id="id135" name="id135">8.6.2&nbsp;&nbsp;&nbsp;Signature</a></li><li><a class="reference" href="#timestamp" id="id136" name="id136">8.6.3&nbsp;&nbsp;&nbsp;Timestamp</a></li><li><a class="reference" href="#type" id="id137" name="id137">8.6.4&nbsp;&nbsp;&nbsp;Type</a></li></ul></li><li><a class="reference" href="#variable-annotations" id="id138" name="id138">8.7&nbsp;&nbsp;&nbsp;Variable Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id21" id="id139" name="id139">8.7.1&nbsp;&nbsp;&nbsp;PyName</a></li></ul></li></ul></li><li><a class="reference" href="#sip-api-for-handwritten-code" id="id140" name="id140">9&nbsp;&nbsp;&nbsp;SIP API for Handwritten Code</a><ul class="auto-toc"><li><a class="reference" href="#sip-api-major-nr" id="id141" name="id141">9.1&nbsp;&nbsp;&nbsp;SIP_API_MAJOR_NR</a></li><li><a class="reference" href="#sip-api-minor-nr" id="id142" name="id142">9.2&nbsp;&nbsp;&nbsp;SIP_API_MINOR_NR</a></li><li><a class="reference" href="#sip-block-threads" id="id143" name="id143">9.3&nbsp;&nbsp;&nbsp;SIP_BLOCK_THREADS</a></li><li><a class="reference" href="#sip-unblock-threads" id="id144" name="id144">9.4&nbsp;&nbsp;&nbsp;SIP_UNBLOCK_THREADS</a></li><li><a class="reference" href="#sip-version" id="id145" name="id145">9.5&nbsp;&nbsp;&nbsp;SIP_VERSION</a></li><li><a class="reference" href="#sip-version-str" id="id146" name="id146">9.6&nbsp;&nbsp;&nbsp;SIP_VERSION_STR</a></li><li><a class="reference" href="#sipbadcatcherresult" id="id147" name="id147">9.7&nbsp;&nbsp;&nbsp;sipBadCatcherResult()</a></li><li><a class="reference" href="#sipbadlengthforslice" id="id148" name="id148">9.8&nbsp;&nbsp;&nbsp;sipBadLengthForSlice()</a></li><li><a class="reference" href="#sipbuildresult" id="id149" name="id149">9.9&nbsp;&nbsp;&nbsp;sipBuildResult()</a></li><li><a class="reference" href="#sipcallmethod" id="id150" name="id150">9.10&nbsp;&nbsp;&nbsp;sipCallMethod()</a></li><li><a class="reference" href="#sipcanconverttoinstance" id="id151" name="id151">9.11&nbsp;&nbsp;&nbsp;sipCanConvertToInstance()</a></li><li><a class="reference" href="#sipcanconverttomappedtype" id="id152" name="id152">9.12&nbsp;&nbsp;&nbsp;sipCanConvertToMappedType()</a></li><li><a class="reference" href="#sipclassname" id="id153" name="id153">9.13&nbsp;&nbsp;&nbsp;sipClassName()</a></li><li><a class="reference" href="#sipconnectrx" id="id154" name="id154">9.14&nbsp;&nbsp;&nbsp;sipConnectRx()</a></li><li><a class="reference" href="#sipconvertfrominstance" id="id155" name="id155">9.15&nbsp;&nbsp;&nbsp;sipConvertFromInstance()</a></li><li><a class="reference" href="#sipconvertfrommappedtype" id="id156" name="id156">9.16&nbsp;&nbsp;&nbsp;sipConvertFromMappedType()</a></li><li><a class="reference" href="#sipconvertfromnamedenum" id="id157" name="id157">9.17&nbsp;&nbsp;&nbsp;sipConvertFromNamedEnum()</a></li><li><a class="reference" href="#sipconvertfromnewinstance" id="id158" name="id158">9.18&nbsp;&nbsp;&nbsp;sipConvertFromNewInstance()</a></li><li><a class="reference" href="#sipconvertfromsequenceindex" id="id159" name="id159">9.19&nbsp;&nbsp;&nbsp;sipConvertFromSequenceIndex()</a></li>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -