У меня есть консольное приложение C # .Net, которое вызывает библиотеку классов C ++ .Net. Однако, когда выполняется следующее приложение, список становится пустым !!!
Если я удалю строку, как указано в комментарии рядом с ней, код работает. Я не понимаю причину этого.
Если я хочу перераспределить память для списка в библиотеке классов C ++, как то, что я пытаюсь сделать ниже, каков правильный способ сделать это?
C # 2005 Консольное приложение
class Caller
{
static void Main(string[] args)
{
Callee callee = new Callee();
List<String> s = new List<String>();
callee.DoSomething(s);
Console.WriteLine(s.Count); // Prints out 0
}
}
Библиотека классов C ++ 2005
public ref class Callee
{
public:
void DoSomething(List<String^>^ list);
};
void Callee::DoSomething(List<String^>^ list)
{
list = gcnew List<String^>(); // Remove this line and it works
list->Add(gcnew String("Test String 1"));
list->Add(gcnew String("Test String 2"));
}