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
 1646: VA X doesn't understand all VS variables
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

.oisyn
Tomato Guru

162 Posts

Posted - Aug 04 2008 :  07:35:32 AM  Show Profile  Reply with Quote
Some of my standard include directories in VS are defined with variables, such as
$(Xbox360InstallDir)include\\xbox

However, VA X doesn't understand this and parses the above string as
C:\\Documents and Settings\\<my user name>\\include\\xbox

In order to let VA X understand the directories, I either have to change the VS settings to not use any variables, or use custom platform settings in VA X itself and thus manually replicating all regular directories.

Another annoying thing is that I can't easily add custom directories for VA X. For example, the above Xbox 360 include dir is officially set for the Xbox 360 platform only. But switching platforms in VA X requires a restart of the IDE, which is pretty undoable if you develop for multiple platforms. So, again, I have to set it to custom, replicate all win32 settings, and add the Xbox 360 settings.

Edited by - .oisyn on Aug 04 2008 12:02:47 PM

feline
Whole Tomato Software

United Kingdom
19021 Posts

Posted - Aug 04 2008 :  09:14:15 AM  Show Profile  Reply with Quote
What type of variable is "Xbox360InstallDir" ?
Which IDE and OS are you using?
How / where are you using this path "$(Xbox360InstallDir)include\\xbox" ?

How have you worked out that VA is turning that string into "C:\\Documents and Settings\\<my user name>\\include\\xbox" ?

using VS2005 and VA 1646 I have added property sheet environment variables to my solution, and when I use these property sheet environment variables in:

Project properties -> C/C++ -> General -> Additional Include Directories

VA understands them correctly, and alt-g to files stored in these directories works correctly.


Changing the platform, VA uses the directories in the platform list to build its symbol database. If you change the platform the symbol database needs to be rebuilt, which requires an IDE restart.

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

.oisyn
Tomato Guru

162 Posts

Posted - Aug 04 2008 :  11:57:30 AM  Show Profile  Reply with Quote
quote:
Originally posted by feline

What type of variable is "Xbox360InstallDir" ?

I have no clue where it comes from. It's not an environment variable, that's for sure. It does show up in the list of macros whenever you try to edit a project option. It probably comes from the Xbox 360 addon.
quote:
Which IDE and OS are you using?
VS 2005, Windows XP-64
quote:
How / where are you using this path "$(Xbox360InstallDir)include\\xbox" ?

In the standard VC++ directories under Tools -> Options -> Projects and Solutions

quote:
How have you worked out that VA is turning that string into "C:\\Documents and Settings\\<my user name>\\include\\xbox" ?

By looking at the directories list under VA X options -> Projects -> C/C++ Directories.

quote:
Changing the platform, VA uses the directories in the platform list to build its symbol database. If you change the platform the symbol database needs to be rebuilt, which requires an IDE restart.

I understand the why, but it's very annoying when developing for multiple platforms. You can't expect developers to restart the IDE every time they want to test a product on a different platform, if they write crossplatform software.
I currently solved it by including the Xbox 360 include directory in the list of standard VC++ include directories for Win32. Obviously this is dangerous as a win32 project might be wrongly including a Xbox 360 header when it isn't supposed to. However, solving it in VA X requires me to copy the entire win32 list into the custom list and add the Xbox 360 directories, which is not an easy thing to do (as you can't copy/paste from that list in the VA X dialog, and you can't go to the VS options dialog with the VA X options dialog open). I'd like to have it include the standard directories from the VS options, while still be able to add extra directories as you please.

Edited by - .oisyn on Aug 04 2008 12:04:46 PM
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Aug 04 2008 :  1:14:38 PM  Show Profile  Reply with Quote
VA typically asks the IDE to evaluate expressions like $(Xbox360InstallDir).
Do you know if the value of the expression changes depending on your active configuration?

Rather than adding the xbox directory to the standard includes, you are better off modifying the Custom VA platform. You can do this directly in regedit (don't do this while the VA options dialog is displayed):
HKEY_CURRENT_USER\\Software\\Whole Tomato\\Visual Assist X\\VANet8\\Custom

We currently have a feature request to support better paste handling in the directories list. case=3768
Go to Top of Page

.oisyn
Tomato Guru

162 Posts

Posted - Aug 06 2008 :  6:37:08 PM  Show Profile  Reply with Quote
quote:
Do you know if the value of the expression changes depending on your active configuration?

I wouldn't think so, it always evaluates to "c:\\program files\\microsoft xbox 360 sdk\\"
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Aug 06 2008 :  6:43:28 PM  Show Profile  Reply with Quote
Is there any change in behavior if you use this instead:
%Xbox360InstallDir%include\\xbox
Go to Top of Page

Krakken
Ketchup Master

Australia
63 Posts

Posted - Aug 07 2008 :  12:13:08 AM  Show Profile  Reply with Quote
The environmental variable for the same directory is %XEDK%. (%XEDK%\\include\\xbox)
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Sep 13 2008 :  01:04:07 AM  Show Profile  Reply with Quote
case=3768 is implemented in build 1649
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