O
Olivier Matrot
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:rint (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.
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:rint (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.