Author |
Topic |
|
jschroedl
Tomato Guru
USA
107 Posts |
Posted - Jun 22 2009 : 09:46:44 AM
|
We have a C++/CLI project which has some native C++ files and some /clr files.
The #include which picks up stdlib.h will define a function named system()
_CRTIMP int __cdecl system(_In_opt_z_ const char * _Command);
But, in C++/CLI code I often prefix some code with "System::" to specify the .NET System namespace. Alas, VAX will "correct" this to "system::" when I type the colon.
Ex: I want to type "System::String^" but end up with "system::String^" and have to backtrack and fix the lower-case s.
Can you make the namespace take precedence when I type a : instead of the function name. If I had typed a paren it would make sense to use system().
John |
Edited by - jschroedl on Jun 22 2009 09:50:38 AM |
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Jun 22 2009 : 5:54:07 PM
|
What version of IDE and Visual Assist do you use?
I included the system function you had mentioned, declared a System namespace, and "Repair case" didn't correct System when I wrote "System::". I was using VS2008 and VAX 1727. |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Jun 22 2009 : 9:48:22 PM
|
case=28209 was discovered when another user reported this problem (System being changed to system by VA). In that user's scenario, he was starting from an empty project which did not have a System reference. Adding the System reference had no effect until reloading the solution. But once the solution had been reloaded, the problem no longer occurred because VA found the reference.
Are you editing the file with the solution loaded, or are you editing the file outside of the solution (either standalone or in the context of a different solution)?
|
|
|
jschroedl
Tomato Guru
USA
107 Posts |
Posted - Jun 23 2009 : 08:49:52 AM
|
I have VS2008 Team Sys for Dev and VAX 1727.
I'm only editing within VS and always in the context of the solution. I'm not adding any references to assemblies while this happens.
If I close and re-open the solution, there's no difference. I also tried re-starting VS. This happens all the time to me.
I launched VS, opened the solution, enabled VAX Logging and repro'd the problem then opened the VAX options dlg to see where the log file goes and saved aside va.log. I can mail it to someone if it's useful.
John |
Edited by - jschroedl on Jun 23 2009 11:11:36 AM |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Jun 23 2009 : 4:10:30 PM
|
Please submit the file via the form:
http://www.wholetomato.com/support/contact.asp
including this thread ID or URL in the description, so we can match it up.
I don't know if it will help or not, but worth a try Can you please try to create a new CLR Windows Forms Application to see if you can reproduce the problem there? After the project has been created, add a new cpp file into the project, include #include "stdlib.h", give a second to VA to reparse the file, switch to Form1.h and paste the following source into the beginning of the namespace:
public class Test {
void Func()
{
}
};
Type "System::" into Func and see what happens. I am wondering: is this problem will show up on your computer? When I typed System, also "system" (the function) was there (in the listbox) but System wasn't corrected after :: for me with Repair Case enabled.
Also, can you please try to rebuild your symbol databases:
VA Options -> Performance -> Rebuild
to see if this helps? |
Edited by - accord on Jun 23 2009 4:11:14 PM |
|
|
|
Topic |
|