У меня такой вопрос!
Есть код написанный на C++.NET
#include <string.h>
using namespace System;
__gc class Test
{
char t __gc[];
public:
Test()
{
t = new char __gc[11];
char __pin * t_ptr = &t[0];
strcpy (t_ptr, "12345");
}
void OutString()
{
Console::WriteLine(t);
}
};
int main()
{
Test * test = new Test;
test->OutString();
return 0;
}
Вроде бы всё компилится, но выводит на экран не "12345" а System.SByte[], что это за бойда? И как с этим боротся.
Кстати если проверять программу пошагово, ты студия показывает что t после копирования есть "12345"
11.10.04 20:18: Перенесено модератором из 'C/C++' — Павел Кузнецов
Здравствуйте, Losar, Вы писали:
L>У меня такой вопрос!
L>Есть код написанный на C++.NET
L>#include <string.h>
L>using namespace System;
L>__gc class Test
L>{
L> char t __gc[];
L>public:
L> Test()
L> {
L> t = new char __gc[11];
L> char __pin * t_ptr = &t[0];
L> strcpy (t_ptr, "12345");
L> }
L> void OutString()
L> {
L> Console::WriteLine(t);
L> }
L>};
L>int main()
L>{
L> Test * test = new Test;
test->>OutString();
L> return 0;
L>}
L>Вроде бы всё компилится, но выводит на экран не "12345" а System.SByte[], что это за бойда? И как с этим боротся.
L>Кстати если проверять программу пошагово, ты студия показывает что t после копирования есть "12345"
А зачем такие извращения если есть String ?
Здравствуйте, Losar, Вы писали:
L> Console::WriteLine(t);
Перепиши:
Console::WriteLine(new System::String(t));
Я кончил, джентльмены, мне остается только поблагодарить вас за внимание.