Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 1711 managed c++ support
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

panenhan
New Member

6 Posts

Posted - Jan 13 2009 :  01:32:52 AM  Show Profile  Reply with Quote
Hi! Good morning!
After evolution the new version of visual assist x for a week, I have to say that it is really the best add in for VS developers. It has so many time-saving features, I love it!
But I found there are some bugs with 1711, it seems that 1711 is not fully support managed c++ language. For example, it's not correctly parsed the -?-?!function()-?-? which is the managed extensions for C++. Here is the code snippet:
ref class ManagedClass
{
public:
MangedClass(void){};
~ManagedClass(void){};
!ManagedClass(void){}; // the new managed c++ syntax
}
And the second problem is that -?-?property-?-? support missing. I can-?-?t create a new property with an exist variable member with the refactor context menu, and also so it is not parse the property implement function member code correctly-?-?
The last bug is more simple, 1711 confuse the managed c++ pointer -?-?^-?-? with the native pointer -?-?*-?-?. If I create the implement with the refactor context munu for a function which declares like this:
ref class ManagedClass
{
public: Byte^ GetValue(void);
}
I will get the implement code like this in the .cpp file:
Byte^ * ManagedClass::GetValue( void )
{
}
It seem that -?-?$SymbolType$-?-? has the error value. :}
Best wishes!

Edited by - panenhan on Jan 13 2009 01:34:37 AM

feline
Whole Tomato Software

United Kingdom
18947 Posts

Posted - Jan 13 2009 :  11:31:54 AM  Show Profile  Reply with Quote
The first problem, what am I supposed to be seeing? This is what I am seeing when I add this code to VS2005. I have added the invalid variable to force underlining to appear:



Property support, I do not understand what you are talking about. Can you please post some example code to show the problem?

Create Implementation, I am seeing the same problem here:

case=22824

zen is the art of being at one with the two'ness
Go to Top of Page

panenhan
New Member

6 Posts

Posted - Jan 14 2009 :  07:31:51 AM  Show Profile  Reply with Quote
Dear feline, thanks for your replay!

Maybe I didn't put my questions clearly the first time. So let me try to explain it again.

With regard to my first question, there are two types of destructors in managed VC. The first is the usual kind ~ManagedClass(), which tomato handles correctly. But the problem is that this kind of destructor is not guaranteed to be called, so I need the second form: !ManagedClass(), and put whatever I need to process in the second form. But tomato just doesn't recognized members in the second kind of destructor, so I can't use its refactor tools to do anything inside the second destructor.

Let me show you the screen shot about my first question metion above, I think it will help me to explain everything. Note that "m_MemberA" and "m_MemberB" in "!MemangedClass()" function are marked with red underlines, which tomato can't recognize, and hence I can't refactor them.


Edited by - panenhan on Jan 14 2009 10:22:12 AM
Go to Top of Page

panenhan
New Member

6 Posts

Posted - Jan 14 2009 :  10:30:41 AM  Show Profile  Reply with Quote
With regards to my second question, tomato doesn't seem to handle "property" correctly in managed VC. With the "property" fields that I want to create, tomato doesn't show the refactor context menu even though I declared in the scripts. Plus, I can only create an inlined version of getters and setters for "property". Can't get "Create Implementation" context menu from tomato. So if I use tomato's built-in support to create getters and setters for property fields, I always get inlined versions in the header file instead of in the cpp file. This creates a lot of untidy code. I noticed that Express Tools can handle this problem correctly, but not tomato. Wonder if it's a bug or just some swith I need to turn on in the settings?
Go to Top of Page

jorgito11
Senior Member

USA
29 Posts

Posted - Jan 14 2009 :  3:40:59 PM  Show Profile  Reply with Quote
Feline,

I cannot "Create Implementation" of properties in a header (for example, foo.h) in C++/CLI also:

public ref class foo
{
public:
	property int Value
	{
		int get();
		void set(int value);
	}
private:
	int m_value;
};


The implementation of "int get();" and "void set(int value);" in foo.cpp should be:

int foo::Value::get()
{
	return m_value; // Added after implementation creation
}

void foo::Value::set(int value)
{
	m_value = value; // Added after implementation creation

}


VA_X.dll file version 10.5.1711.0 built 2008.12.11
Licensed to:
VA X: [email protected] (1-user license) Support ends 2009.06.20
VA.NET 7.1: [email protected] (1-user license)
DevEnv.exe version 9.0.30729.1
msenv.dll version 9.0.30729.1
Font: Courier New 16(Pixels)
Comctl32.dll version 6.0.2900.2982
Windows XP 5.1 Build 2600 Service Pack 2
2 processors

Platform: Win32
Stable Includes:
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include;
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\include;
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include;
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include;
C:\\Development\\Includes;
C:\\Development\\Cpp\\Native\\Ultimate Toolbox\\include;
C:\\Development\\Cpp\\Native\\Ultimate Grid\\Include;
C:\\Development\\Cpp\\Native\\Ultimate TCP-IP\\Include;
C:\\Development\\Cpp\\Native\\Ultimate TCP-IP\\Security\\Include;
C:\\Development\\Cpp\\Native\\Ultimate Grid\\Lib;
C:\\Development\\Cpp\\Native\\Boost\\boost_1_36_0;
C:\\Development\\Cpp\\Native\\STLSoft\\stlsoft-1.9.57\\include;
C:\\Development\\Cpp\\Native\\Vole\\vole-0.5.1\\include;
C:\\Development\\Cpp\\Native\\WTL80\\include;
C:\\Development\\Cpp\\Native\\OTL\\include;
C:\\app\\$gjacks23\\product\\10.2.0\\instantclient_10_2\\sdk\\include;
C:\\Development\\Cpp\\Native\\MPICH2\\include;
C:\\Development\\Cpp\\Native\\FastFormat\\fastformat-0.2.1-alpha-1\\include;
C:\\Development\\Cpp\\Native\\Flecxx\\flecxx-0.2.3\\include;
C:\\Development\\Cpp\\Native\\OpenRJ\\openrj-1.6.4\\include;
C:\\Development\\Cpp\\Native\\ShWild\\shwild-0.9.18\\include;
C:\\Development\\Cpp\\Native\\xTest\\xtests-0.8.5\\include;

Other Includes:

Stable Source Directories:
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\mfc;
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\mfcm;
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\atl;
C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\crt\\src;
C:\\Development\\Cpp\\Native\\Ultimate Grid\\Source;
C:\\Development\\Cpp\\Native\\Ultimate Toolbox\\source;
C:\\Development\\Cpp\\Native\\Ultimate TCP-IP\\source;
C:\\Development\\Cpp\\Native\\Ultimate TCP-IP\\Security\\Source;


Edited by - jorgito11 on Jan 14 2009 3:44:23 PM
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Jan 15 2009 :  5:28:00 PM  Show Profile  Reply with Quote
I am seeing the same effect here with finalizers:

case=19150

Create implementation is not offered on C++ CLR properties is

case=7806
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Mar 30 2009 :  08:47:47 AM  Show Profile  Reply with Quote
case=22824 is fixed in build 1721

Whole Tomato Software, Inc.
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Aug 04 2010 :  5:46:49 PM  Show Profile  Reply with Quote
case=19150 is fixed in build 1829

Whole Tomato Software, Inc.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000