AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable Argumente in C

Ein Thema von Assarbad · begonnen am 29. Jan 2004 · letzter Beitrag vom 30. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Assarbad
(Gast)

n/a Beiträge
 
#1

Variable Argumente in C

  Alt 29. Jan 2004, 21:38
Hi,

mit ... habe ich eine Liste variabler Argumente. Allerdings muß ich deren Typ zur Compile-Zeit kennen um sie zu verarbeiten. Wie schreibe ich eine Funktion wie printf() welche komplett variable Argumente (also auch variable Typen) annimmt, bzw wie kann ich erreichen, daß die Argumente von einem Makro oder meiner Funktion direkt an wsprintf() weitergegeben werden?!?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Variable Argumente in C

  Alt 29. Jan 2004, 21:51
Frag mal hier: C/C++-Forum. Die sind da eventuell etwas besser drauf diesbezüglich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#3

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:00
was mir noch nicht klar ist
willst Du das in C oder in Delphi realisieren ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:03
In C, sonst stünde es nicht hier, sondern in einer Delphi Sparte. Ich denke mal, dass Assa schon darauf achtet, wo er hin postet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:04
Aus dem Thread Titel "...in C und der Sparte (Programmieren allgemein => alles, was mit Programmieren zu tun hat, aber kein Delphi ist) schließe ich mal, er will es in C machen

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#6

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:08
er könnte auch das wie vergessen haben
Variable Argumente wie in C
nunja ...

Code:
void test (const char *format, ...)
{
   int            nRC = 0;
   char           *sString;

   va_list arglist;

   // alloc an Error-String
   sString = ncalloc (200, sizeof (char));

   // macro to set arg-stack(format)
   va_start (arglist, format);
   // sprintf for arg-stack
   _vsnprintf (sString, 200, format, arglist);

   // print Error-String
   MessageBox (GetActiveWindow (), sString, "info", MB_OK | MB_SYSTEMMODAL | MB_ICONSTOP);

   // reset the arg-stack
   va_end (arglist);
   free (sString);

   // make an exception to end the routine ...
   nexit (1);
}
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#7

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:11
In GNU C ist die Funktion vasprintf() dabei, der man eine va_list übergeben kann. Den Format-String kannst du ja dann deinen Bedürftnissen anpassen. Die Funktion ist aber weder in C99 noch in POSIX definiert, also musst du sie vielleicht aus dem GNU-libc-Source kopieren (sofern du dein Programm unter einer GPL-kompatiblen Lizenz veröffentlichst).
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#8

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:14
Danke euch allen, aber besonders trifid und d3g

Ich werd mal schauen ob es solche Funcs auch bei der RTL in NTOSKRNL.EXE gibt. Ist für einen NT Kerneltreiber und ich bin deshalb etwas eingeschränkt. Wenn Rückmeldung gewünscht wird, kommt auch diese

Oliver
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#9

Re: Variable Argumente in C

  Alt 29. Jan 2004, 22:43
Funzt das nicht ganz.

Ich habe nur folgende Funktionen zur Verfügung (ist ein NT Kerneltreiber):

Code:
_snprintf
_snwprintf
sprintf
swprintf
_vsnprintf
vsprintf
vsprintf() würde es ja tun, aber Unicode wäre mir schon weit lieber :-/ ... Ideen? Ratschläge?
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#10

Re: Variable Argumente in C

  Alt 29. Jan 2004, 23:02
Du könntest den vsprintf als Grundlage für einen eigenen myvsprintf verwenden, der dir den Unicode verarbeitet.
Wenn Du den Source von vsprintf hast, dürfte es nicht schwer die Zeichenketten von 8Bit auf 16Bit anzuheben. (so habe ich meine void test ... entwickelt)

aber moment mal
die _vsnprintf unterstützt doch unicode
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz