error C3699: '*' : cannot use this indirection on type 'System::String' " at ArgOutStringT

error C3699: '*' : cannot use this indirection on type 'System::String' " at ArgOutStringT

I was converting VC++ project from Common Language Runtime Support, Old Syntax (/clr:oldSyntax) to Common Language Runtime Support (/clr). 

1) I got an error saying "error C3699: '*' : cannot use this indirection on type 'System::String' " at ArgOutStringT(CountRef cRef, String**& s, bool Pad = false) line.

What is the new syntax for String**&  in /clr

2) error C3239: 'cli::interior_ptr<Type> *' : pointer to interior/pin pointer is disallowed by the common language runtime 

at int __gc** gcIntCount;

3)  error C3239: 'cli::interior_ptr<T[]> &' : pointer to interior/pin pointer is disallowed by the common language runtime  at

T (__gc* __nogc& outArray) __gc[]; where T is Geniric type

We cannot use * or dereference operator in new syntax of /clr. The new syntax uses  handle-to-object (^) for such scenarios. Please refer the below links

http-://msdn.microsoft.-com/en-us/library/vstudio/ms177218.aspx

http-://support.microsoft.-com/kb/311259/en-us

If this does not help you to resolve the issue and need more help, please consider opening a support case with us as this involves more work and from a support perspective this is really beyond what we can do here in the forums. Visit this link to see the various support options that are available to better meet your needs:  http-://support.microsoft.-com/default.aspx?id=fh;en-us;offerprophone."

Copyright © 2007-2012 www.chuibin.com Chuibin Copyright