Link to home
Start Free TrialLog in
Avatar of allmer
allmerFlag for Türkiye

asked on

How can I share and edit one class over several projects?

Hi experts,
I created some folders:

c:/GPF-Project
c:/GPF-Project/shared
c:/GPF-Project/DNATranslator
c:/GPF-Project/GPF
c:/GPF-Project/...

Now I would like to have some common classes within c:/GPF-Project/shared.
I need to edit the classes from all other sub directories like GPF and DNATranslator ...
At the moment VS.net keeps creating new source files in the subdirectories when I try to add a function or variable to the class. It however brings me to the right point if I select a function in the class view.
How can I tell VS.net to edit the classes in the location they are and obstain from creating new files?
I add the classes by including the source files in the solution explorer ... Add - Add an existing item ...
Any ideas?
Regards,
Jens
Avatar of AndyAinscow
AndyAinscow
Flag of Switzerland image

Remove the files from the projects.
Move the files into your common folder.
Add the files back into your project.


Note I say files NOT classes
Avatar of allmer

ASKER

That is exactly what I did.
I chose the appropriate files (xy.h, xy.cpp), deleted them in the solution view, moved them physically to the shared folder and then inserted them back in the solution view (Add existing item).
If I now use the solution view to select the files there is no problem.
If I, however, try to add a function by right-clicking a class in the class view and choose add function it always creates a new file in the current folder and does not add the content to the files in the shared folder.
Best regards,
Jens  
Ah.
I use Visual Studio 6.  This procedure works fine there.  Maybe this is one of Microsofts 'improvements'
Avatar of allmer

ASKER

The problem may be my way to include the headers:
if I have 2 files in shared
xy.h and xy.cpp

If xy.h is included like this:
#include "xy.h"  -- didn't let me add a function at all sometimes //not very reproduceable, though.
#include "c:\full-Path\xy.h"  -- leads to a new file to be created.
#include "../shared/xy.h"     -- same problem here.

Is there a trick to that?
I always use the relative path, again with Visual Studio 6, and that is OK.

is this a typo? - the / instead of \\
#include "../shared/xy.h"

Avatar of allmer

ASKER

They both usually work fine ;-)
With different platforms you should rather use / than \.

If I right click a class in the class view and choose add variable it works fine.
The only problem is the location of the cpp file when adding functions that way.

Do I have to make any adjustments in VS to tell MS not to create a new file?
Maybe set some include path to be used?

Any suggestions?
Cheers,
Jens
Maybe set some include path to be used?

Don't know, but it sounds a real hack if it is required.
Avatar of allmer

ASKER

What if the folder was read-only?
https://www.experts-exchange.com/questions/20972289/How-can-I-permanently-set-permissions-to-a-folder-and-files-within-my-documents.html
That would probably impose such restrains.
Strange that it works with changing header files that are read-only but not with
cpp files.
There must have been several cooks involved in that ;-}
Anyway, can't find out if this is the solution, yet.
Greets
Jens
Why should the folder be read only - but it would be quick for you to test.
Avatar of allmer

ASKER

You are right and after some ...
It doesn't change a thing if I mess around with the file attributes.
They weren't probably read-only in the first place ... just displayed like that by the explorer.
dir /AR didn't seem to find any read-only files.
ASKER CERTIFIED SOLUTION
Avatar of akalmani
akalmani

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial