<script src="../static/ga4.js" type="text/javascript"></script> </head> <body> <h1>NumPut()</h1> <p>Speichert eine Binärzahl an einer bestimmten Adresse+Offset.</p> <pre class="Syntax"><span class="func">NumPut</span>(Zahl, VarOderAdresse <span class="optional">, Offset, Typ</span>) <span class="func">NumPut</span>(Zahl, VarOderAdresse <span class="optional">, Typ</span>)</pre> <h2 id="Parameters">Parameter</h2> <dl> <dt>Zahl</dt> <dd><p>Die zu speichernde Zahl.</p></dd> <dt>VarOderAdresse</dt> <dd> <p>Eine Speicheradresse oder Variable. Wenn <em>VarOderAdresse</em> eine Variable wie <code>MeineVar</code> ist, wird die Adresse des Zeichenkettenpuffers der Variable verwendet. Im Prinzip entspricht dies der Übergabe von <code>&amp;MeineVar</code>, allerdings wird durch Weglassen von "&amp;" eine bessere Performanz erzielt und sichergestellt, dass die Zieladresse + Offset <a href="VarSetCapacity.htm">gültig</a> ist.</p> <p><strong>Übergeben Sie keine Variablenreferenz</strong>, wenn die Variable die Zieladresse <em>enthält</em>; übergeben Sie in diesem Fall einen Ausdruck wie <code>MeineVar+0</code>.</p> </dd> <dt>Offset</dt> <dd><p>Wenn leer oder weggelassen (oder wenn der 3-Parameter-Modus verwendet wird), wird standardmäßig 0 verwendet. Andernfalls geben Sie eine Zahl (in Bytes) an, die zur <em>VarOderAdresse</em> addiert wird, um die Zieladresse zu bestimmen.</p></dd> <dt>Type</dt> <dd> <p>Wenn leer oder weggelassen, wird standardmäßig UPtr verwendet. Andernfalls geben Sie UInt, UInt64, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr oder UPtr an.</p> <p>UInt64 wird in <span class="ver">[v1.0.48+]</span> unterstützt, da große vorzeichenlose Werte als Zeichenketten übergeben werden können. In früheren Versionen und bei allen anderen Integertypen, oder bei der Übergabe von reinen Integern, wird das Ergebnis nicht durch vorzeichenfähig vs. vorzeichenlos beeinflusst, da für die Darstellung von vorzeichenfähigen Integern das Zweierkomplement verwendet wird.</p> <p>Im Gegensatz zu DllCall() müssen diese in Anführungszeichen gesetzt werden, wenn sie direkt angegeben werden.</p> <p>Weitere Informationen finden Sie unter <a href="DllCall.htm#types">DllCall-Typen</a>.</p> </dd> </dl> <h2 id="Return_Value">Rückgabewert</h2> <p>Wenn die Zieladresse ungültig ist, wird eine leere Zeichenkette zurückgegeben. Es ist jedoch möglich, dass einige ungültige Adressen nicht als solche erkannt werden, was zu unvorhersehbarem Verhalten führen kann.</p> <p>Andernfalls wird die Adresse rechts vom gerade geschriebenen Element zurückgegeben. Dieser Rückgabewert wird häufig verwendet, wenn eine Folge von Zahlen unterschiedlichen Typs geschrieben wird, z.B. in einer Struktur für DllCall().</p> <h2 id="General_Remarks">Allgemeine Bemerkungen</h2> <p>Wenn ein Integer den Wertebereich von <em>Typ</em> überschreitet, werden seine höchstwertigen Bytes ignoriert; z.B. würde <code>NumPut(257, Var, 0, "Char")</code> die Zahl 1 speichern.</p> <p>Wenn nur drei Parameter vorhanden sind, kann der dritte Parameter entweder <em>Offset</em> oder <em>Typ</em> sein. Zum Beispiel wäre <code>NumPut(x, var, "int")</code> gültig.</p> <h2 id="Related">Siehe auch</h2> <p><a href="NumGet.htm">NumGet()</a>, <a href="DllCall.htm">DllCall()</a>, <a href="VarSetCapacity.htm">VarSetCapacity()</a></p> </body> </html>