VS2005 : Managed Wrapper for Unmanaged code : Ellipsis dilema



Hello,
I'm in the process of writing a managed wrapper on legacy C++ code.
I have to deal with methods that are using the ellipsis.

For instance,the legacy method is :
void CLog::Print (LPCSTR szMask, ...)
{

CHAR szText[512];

va_list arglist;

va_start (arglist, szMask);

wvsprintfA (szText, szMask, arglist);

va_end (arglist);

}


The wrapper looks like this :
void Print(System::String ^ Text, array<Object^>^ args )

{

CStringA s((LPCTSTR)UnmanagedString(Text));

m_pLog->Print(s, args);

}

I'm calling the wrapper with this call :

log->Print("Hello, CallCount is [%d]", gcnew
array<Object^>(1){(System::Int32)1});

And the result is "Hello CallCount [3226976]" instead of "Hello CallCount
[1]"

Where is the problem ?

TIA.


.



Relevant Pages


Loading