I assume you are using wxWidgets.. why don't you consider using the
specific functions for that purpose included in the wxString class?
wxString::Format and wxString::FormatV

Tiago


On Mon, 25 Oct 2004 20:43:31 +0200, Steven Van Ingelgem <[EMAIL PROTECTED]> wrote:
>  Hi,
> 
>  I wanted to create my own "Format"-thingie, based upon my own database:
> 
>  -----------------------------------------------------
>  Source
>  -----------------------------------------------------
>  wxString SQLite3_Db::Format( const wxString& format, ... )
>  {
>    va_list marker;
>    va_start(marker, format);
>    
>    char * t = sqlite3_vmprintf( format.mb_str(wxConvUTF8).data(), marker );
> 
>    va_end(marker);
> 
>    wxString retVal( t, wxConvUTF8 );
> 
>    sqlite3_free( t );
> 
>    return retVal;
>  }
>  -----------------------------------------------------
> 
>  The problem here is that I get very weird results... Now tracing down, I
> found that in vxprintf (printf.c) "v = va_arg(ap,int);" is done (my first
> argument is %d).
> 
>  Now what he gets there is the second parameter!
> 
>  
>  To be more clear:
> 
>  SQLite3_Db::Format( "%d%s", 123, "Test" );
> 
>  Then sqlite finds the first %d, tries to get the value of it, but finds the
> pointer pointing to 'Test'...
> 
>  
> 
>  What did I do wrong?
>  Thx ;)
> 
>  
>  
> 
>  KaReL (aka Steven)
> 
>  Main Webpage : http://www.karels0ft.be/
>  ICQ #        : 35217584
>  
>

Reply via email to