![]() |
Variable Argumente in C
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?!? |
Re: Variable Argumente in C
Frag mal hier:
![]() |
Re: Variable Argumente in C
was mir noch nicht klar ist
willst Du das in C oder in Delphi realisieren ? |
Re: Variable Argumente in C
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. ;)
|
Re: Variable Argumente in C
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 :wink:
Man liest sich, Stanlay :hi: |
Re: Variable Argumente in C
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); } |
Re: Variable Argumente in C
In GNU C ist die Funktion
![]() |
Re: Variable Argumente in C
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 |
Re: Variable Argumente in C
Funzt das nicht ganz.
Ich habe nur folgende Funktionen zur Verfügung (ist ein NT Kerneltreiber):
Code:
vsprintf() würde es ja tun, aber Unicode wäre mir schon weit lieber :-/ ... Ideen? Ratschläge?
_snprintf
_snwprintf sprintf swprintf _vsnprintf vsprintf |
Re: Variable Argumente in C
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz