FW: [aspectc-user] Visual Studio and ac++ ?
Benoit Lefevre
benoit.lefevre-prestataire at calyon.com
Tue Mar 18 17:06:54 CET 2008
Hi Matthias
I finally found time to try ac++ with VC8.
Your advice helped me a lot as I had the Trace example producing
weaved source file.
I didn't try to compile this file as it wasn't relying on very complex
code.
Instead, I directly tried to weave a very simple aspect on one of my
project cpp file.
That's where troubles got in (4 of them).
I don't intend to ask you with this mail to solve them as VC8 is not
clearly stated as been supported, but rather help you (a little) for
your future port of visual studio 7 Plug-in toward the VC8 version.
All these troubles occurred at parsing step while using the -v9 option
of ac++
Here they are :
1) ac++ don't seem to support that kind of include preprocessor
command containing windows style backslash path separators :
#include <in\here.h>
But maybe it is rather due to Visual Studio supporting an out of
C++ specification feature ?
2) I got stuck on a strange class declaration :
Here is a simplified extract of what is causing this trouble :
--------------------------
template <bool _SECURE_VALIDATION>
class _Iterator : public _Const_iterator<_SECURE_VALIDATION>
{
public:
...
typedef typename _If<_SECURE_VALIDATION,
_Iterator<false>,
_Unchanged_checked_iterator_base_type_tag>::_Result
_Checked_iterator_base_type;
friend _Iterator<false>;
friend _Iterator<true>;
...
};
----------------------------
ac++ don't like the first friend declaration.
Note that, as I don't know what can cause this trouble, maybe I
simplified too much this extract.
3) The following extract of file crtwrn.h is not parsable for
ac++ because of the second backslash :
------------------------------------
#define _CRTWRN_MESSAGE__NO_ITERATOR_DEBUGGING Iterator debugging not \
supported in retail builds.\n \
Setting _HAS_ITERA##TOR_DEBUGGING=0
------------------------------------
4) The "using namespace" formulation doesn't seem to be
supported by ac++, at least fot the following example:
-------------
#include <aFile.h> // namespaces are declared within aFile.h
using namespace namespaceOne;
class A : public B
{
...
// namespaceTwo is defined within namespaceOne
namespaceTwo::aType myVariable;
...
}
-------------
An error is reported on "myVariable" declaration.
Hope it will help.
Best regards.
Benoit Lefevre.
-----Original Message-----
From: Matthias Urban [mailto:matthias.urban at pure-systems.com]
Sent: Wednesday, February 27, 2008 2:58 PM
To: Lefevre, Benoit (CALYON)
Cc: aspectc-user at aspectc.org
Subject: Re: [aspectc-user] Visual Studio and ac++ ?
Hi,
it's definitely not a "piece of cake" to use ac++ directly on VC++ code,
but it's also not a nightmare. I don't exactly know all changes between
VC7 and VC8. But I know that at least new keywords were introduced. If
you have access to a VS2003, then install the AspectC++ Add-In and look
how it solves these problems (there is a configuration file with
#defines and some required declarations in an extra header file that is
automatically included, the Add-In log file contains the corresponding
ac++ call).
When the next ac++ release is out (in the near future), then a new
AspectC++ Add-In should be available (for VC7 and for VC8) too.
Best regards,
Matthias
> In fact I have access to both environments because the software in
> which one I'd like to introduce aspect usage started its life cycle
> with pre Visual Studio 8 versions (VC6 then VC7).
>
> But it has recently moved to VC8 in the main development branch.
>
> As using AOP is only relevant in this branch and the available
> AspectC plug-in is referenced as working only with VC7, I thought the
> direct usage of ac++.exe with VC8 was my only option.
>
> Am I wrong ?
>
> If I'm not, is it THAT complex to use ac++ directly (ranking from
> "Nightmare" to "piece of cake") ?
>
> Reading the ac++ weaver online documentation makes me feel like it's
> possible.
--
Matthias Urban
Phone: +49-391-544569-32 Fax: +49-391-544569-90
--
pure-systems GmbH
Geschäftsführung: Danilo Beuche, Holger Papajewski
Sitz der Gesellschaft: Magdeburg
Registergericht: Amtsgericht Magdeburg, HRB 13044
-------------- next part --------------
Ce message et ses pièces jointes (le "message") est destiné à l'usage
exclusif de son destinataire.
Si vous recevez ce message par erreur, merci d'en aviser immédiatement
l'expéditeur et de le détruire ensuite. Le présent message pouvant
être altéré à notre insu, CALYON Crédit Agricole CIB
ne peut pas être engagé par son contenu. Tous droits réservés.
This message and/or any attachments (the "message") is intended for
the sole use of its addressee.
If you are not the addressee, please immediately notify the sender and
then destroy the message. As this message and/or any attachments may
have been altered without our knowledge, its content is not legally
binding on CALYON Crédit Agricole CIB. All rights reserved.
More information about the aspectc-user
mailing list