Author |
Topic |
|
panenhan
New Member
6 Posts |
Posted - Jan 13 2009 : 01:32:52 AM
|
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
19024 Posts |
Posted - Jan 13 2009 : 11:31:54 AM
|
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 |
|
|
panenhan
New Member
6 Posts |
Posted - Jan 14 2009 : 07:31:51 AM
|
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 |
|
|
panenhan
New Member
6 Posts |
Posted - Jan 14 2009 : 10:30:41 AM
|
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? |
|
|
jorgito11
Senior Member
USA
29 Posts |
Posted - Jan 14 2009 : 3:40:59 PM
|
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 |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Jan 15 2009 : 5:28:00 PM
|
I am seeing the same effect here with finalizers:
case=19150
Create implementation is not offered on C++ CLR properties is
case=7806 |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Mar 30 2009 : 08:47:47 AM
|
case=22824 is fixed in build 1721 |
Whole Tomato Software, Inc. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Aug 04 2010 : 5:46:49 PM
|
case=19150 is fixed in build 1829 |
Whole Tomato Software, Inc. |
|
|
|
Topic |
|