By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,735 Members | 1,462 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,735 IT Pros & Developers. It's quick & easy.

frustrating parameter issue

P: n/a
Hello everyone,

My question is part C# and part C++. Please don't kill me for bringing C#
inhere :-) Also please don't kill me for asking a n00b question, I'm still
new to C++/CLI and C#.
I have an assembly written in C++/CLI with a public function:

int MyClass::MyFunction(String ^x) {
x = "zzz";
return 0;
};
I want to call this function from a C# app and show the changed contents of
variable

MyClass TheClass = new MyClass();
String w = "m";
TheClass.MyFunction(w);
MessageBox.Show(w);
When executing, the messagebox shows 'm', and I want it to show 'zzz'.

What am I doing wrong here???

Thanks for reading sofar.

Vince.
Feb 26 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
>I want to call this function from a C# app and show the changed contents of
>variable
Vince,

You need to define the function parameter as a tracking reference -
see "% Tracking Reference" in MSDN.

Dave
Feb 26 '07 #2

P: n/a
int MyClass::MyFunction(String ^%x) {
x = "zzz";
return 0;
};

--
David Anton
www.tangiblesoftwaresolutions.com
Instant C#: VB to C# converter
Instant VB: C# to VB converter
Instant C++: C#/VB to C++ converter
Instant Python: C#/VB to Python converter
"Vinz" wrote:
Hello everyone,

My question is part C# and part C++. Please don't kill me for bringing C#
inhere :-) Also please don't kill me for asking a n00b question, I'm still
new to C++/CLI and C#.
I have an assembly written in C++/CLI with a public function:

int MyClass::MyFunction(String ^x) {
x = "zzz";
return 0;
};
I want to call this function from a C# app and show the changed contents of
variable

MyClass TheClass = new MyClass();
String w = "m";
TheClass.MyFunction(w);
MessageBox.Show(w);
When executing, the messagebox shows 'm', and I want it to show 'zzz'.

What am I doing wrong here???

Thanks for reading sofar.

Vince.
Feb 26 '07 #3

P: n/a
Thanks very much guys :-)

I tried to use the % before but that doesn't compile. ^% compiles though. I
had to also use ref x instead of just x in the C# call too btw.

Anyway, I got it working now, thanks a lot :-)

Vince.

"David Anton" <Da********@discussions.microsoft.comwrote in message
news:D3**********************************@microsof t.com...
int MyClass::MyFunction(String ^%x) {
x = "zzz";
return 0;
};

--
David Anton
www.tangiblesoftwaresolutions.com
Instant C#: VB to C# converter
Instant VB: C# to VB converter
Instant C++: C#/VB to C++ converter
Instant Python: C#/VB to Python converter
"Vinz" wrote:
>Hello everyone,

My question is part C# and part C++. Please don't kill me for bringing C#
inhere :-) Also please don't kill me for asking a n00b question, I'm
still
new to C++/CLI and C#.
I have an assembly written in C++/CLI with a public function:

int MyClass::MyFunction(String ^x) {
x = "zzz";
return 0;
};
I want to call this function from a C# app and show the changed contents
of
variable

MyClass TheClass = new MyClass();
String w = "m";
TheClass.MyFunction(w);
MessageBox.Show(w);
When executing, the messagebox shows 'm', and I want it to show 'zzz'.

What am I doing wrong here???

Thanks for reading sofar.

Vince.

Feb 27 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.