int x=0;
void f(&x)
{
*x=1;
}
Передача управляемого объекта по ссылке
Ламерский вопрос,но явного ответа найти не смог(
Код:
Как быть если х не int, а String ^list="";?приложение на С++
Если правильно понимаю доступа к адресам таких объектов пользователь не имеет.но как вернуть объект из функции?кроме как создать класс и в нем объявить этот объект,а потом работать с ним через функции
Цитата: ctraus
как вернуть объект из функции?
Передать куда, вернуть откуда? Какая у вас цель?
Где находится управляемый код, в какой контекст передается управляемый объект?
Цитата: hardcase
Передать куда, вернуть откуда? Какая у вас цель?
Где находится управляемый код, в какой контекст передается управляемый объект?
Где находится управляемый код, в какой контекст передается управляемый объект?
Кусок кода который я привел.Передать адрес управляемой переменной,в функцию,там поменять значение и воспользоваться этим значением по выходу из функции.
(оперирую терминами C просьба не пинать за это)
Цитата: ctraus
Кусок кода который я привел.Передать адрес управляемой переменной,в функцию,там поменять значение и воспользоваться этим значением по выходу из функции.
Ваша функция находится в управляемом коде или нет?
Если в управляемом то все совершенно также как с числами, в противном случае вам придется долго и упорно читать о неявном PInvoke в MC++.
Если можно пример псевдокода как осуществить такое?
Цитата: ctraus
Вроде бы да.Создан управляемый класс,где определена функция куда надо передать адрес объекта(напр.String).
Если можно пример псевдокода как осуществить такое?
Если можно пример псевдокода как осуществить такое?
Код:
#include "stdafx.h"
using namespace System;
void fill_str(String^ &val)
{
val = gcnew String(L"bla bla bla");
}
int main(array<System::String ^> ^args)
{
String^ str;
fill_str(str);
Console::WriteLine(str);
Console::ReadKey(true);
return 0;
}
using namespace System;
void fill_str(String^ &val)
{
val = gcnew String(L"bla bla bla");
}
int main(array<System::String ^> ^args)
{
String^ str;
fill_str(str);
Console::WriteLine(str);
Console::ReadKey(true);
return 0;
}
Спасибо!
И объявляешь переменную str : at : string10 ссылаясь на первый адрес в конфигураторе;