Hallo,
wie kann man in RB eine Funktion mit Declare definieren, wie eine
variable Argumentenliste (so wie z.B. printf) enthält ?
Soweit ich weiß legt der Compiler beim Aufruf die Anzahl der Argumente
auf den Stack und dahinter die Argumente.
Meinst Du mit "Stack" dabei den speicherbereich, den ich mittels Ptr
an die Funktion übergeben ?
offset type what
00 long NumberOfArgs
04 any Arg1
xx any Arg2
Hmmm, das wird aber doch schwierig, denn woher soll er wissen was für
Datentypen ihn da erwarten und die richtige Länge ermitteln?
Ich hätte eher gedacht es sind Zeiger, die haben immer die gleiche
Länge, also dann evtl. so:
offset type what
00 long NumberOfArgs
04 long * Arg1
08 long * Arg2
Oder das es einfach so ausschaut:
offset type what
00 long *Arg1
04 long *Arg2
....
xx long *NULL
Also einfach mit einem NULL-Zeiger endet....
Mit freundlichen Grüssen,
Oliver Geisen
_____________________________
Systemadministrator
Kreisboten Verlag Mühlfellner KG
82362 Weilheim i. Ob.
Tel. 0881/686-904
Fax 0881/686-74
From Sat 12 Aug 2006 16:34:15 +0200
Return-Path: <realbasic-nug dot de-bounces at lists dot realsoftware dot com>
X-Original-To: listarchive at realsoftware dot com
Delivered-To: listarchive at realsoftware dot com
Received: by xmail.realsoftware.com (Postfix, from userid 1037)
id 7A771987A01; Sat, 12 Aug 2006 07:34:28 -0700 (PDT)
X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on realxserve.local
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=4.5 tests=AWL,BAYES_00 autolearn=ham
version=3.1.1
Received: from lists.realsoftware.com (lists.realsoftware.com [209.198.132.125])
by xmail.realsoftware.com (Postfix) with ESMTP id EE6199879F0;
Sat, 12 Aug 2006 07:34:22 -0700 (PDT)
Received: from lists.realsoftware.com (localhost [127.0.0.1])
by lists.realsoftware.com (Postfix) with ESMTP
id CC8791421A89; Sat, 12 Aug 2006 09:34:20 -0500 (CDT)
X-Original-To: realbasic-nug dot de at lists dot realsoftware dot com
Delivered-To: realbasic-nug dot de at lists dot realsoftware dot com
Received: from smtprelay02.ispgateway.de (smtprelay02.ispgateway.de
[80.67.18.14])
by lists.realsoftware.com (Postfix) with ESMTP id EB7F91421A7D
for <realbasic-nug dot de at lists dot realsoftware dot com>;
Sat, 12 Aug 2006 09:34:16 -0500 (CDT)
Received: (qmail 22135 invoked from network); 12 Aug 2006 14:34:15 -0000
Received: from unknown (HELO [192.168.1.80]) (363246 at [84 dot 175 dot 82 dot
200])
(envelope-sender <support at monkeybreadsoftware dot de>)
by smtprelay02.ispgateway.de (qmail-ldap-1.03) with SMTP
for <realbasic-nug dot de at lists dot realsoftware dot com>;
12 Aug 2006 14:34:15 -0000
To: realbasic-nug dot de at lists dot realsoftware dot com (REALbasic NUG
German)
In-Reply-To: <EA752310-3516-437B-B8A1-E4F99F3C19E5 at kreisbote dot de>
From: support at monkeybreadsoftware dot de (Christian Schmitz)
Date: Sat, 12 Aug 2006 16:34:15 +0200
Message-ID: <1hjytzx dot 74ygx9gxv8p4M%support at monkeybreadsoftware dot de>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Organization: Monkeybread Software Germany
X-Face: nrf3>{WQ6c&r+7 at e)"]0G60`-6ND^)I2mI%>)QGYa=9"=7jhd-g2|b3!>Al0+
Ccb%xGQshhi|g at QU2$
User-Agent: MacSOUP/D-2.7 (Mac OS X version 10.4.7)
Subject: Re: Shared-Lib Funktionen mit va_args
X-BeenThere: realbasic-nug dot de at lists dot realsoftware dot com
X-Mailman-Version: 2.1.2
Precedence: list
Reply-To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot
com>
Sender: realbasic-nug dot de-bounces at lists dot realsoftware dot com
Errors-To: realbasic-nug dot de-bounces at lists dot realsoftware dot com
Oliver Geisen <oliver dot geisen at kreisbote dot de> wrote:
Hallo,
Hmmm, das wird aber doch schwierig, denn woher soll er wissen was für
Datentypen ihn da erwarten und die richtige Länge ermitteln?
Es sind alles Integers normal. Strings als Pointer.
Ok, doubles brauchen mehr Platz und laden eventuell auch auf dem Stack
von der FPU.
Gruß
Christian
--
Around eleven thousand functions in one REALbasic plug-in.
The Monkeybread Software Realbasic Plugin v6.2.
<http://www.monkeybreadsoftware.de/realbasic/plugins.shtml>
|