realbasic-nug.de
[Top] [All Lists]

Re: Shared-Lib Funktionen mit va_args

To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot com>
Subject: Re: Shared-Lib Funktionen mit va_args
From: Oliver Geisen <oliver dot geisen at kreisbote dot de>
Date: Sat, 12 Aug 2006 15:47:22 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot de at lists dot realsoftware dot com
References: <1hjyg8v dot 1oxuwoz4jk6ucM%support at monkeybreadsoftware dot de>
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>


<Prev in Thread] Current Thread [Next in Thread>