www.digitalmars.com         C & C++   DMDScript  

c++ - Need extra smarts from the directory handling

reply "Matthew Wilson" <matthew stlsoft.org> writes:
Am issuing the command:

   dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp

and am receiving the response

  Fatal error: unable to open input file 'ShlWApi.h'
  --- errorlevel 1

This is becauses MSSDK (as it installs) is defined as "P:\SDKs\Microsoft
SDK\." rather than the more sensible "P:\SDKs\Microsoft SDK", which means
that "%MSSDK%\include" expands to "P:\SDKs\Microsoft SDK\.\include".

Alas, DMC++ is the only compiler I have access to that is unable to use
GetFullPathName() (or a similar mechanism) to deduce a canonical version and
operate correctly.

Any chance of a fix for this for 8.35? (For the moment I'm editing MSDDK's
environment settings.)

Matthew
Jul 11 2003
next sibling parent gf <mz_y2k yahoo...com> writes:
"Matthew Wilson" <matthew stlsoft.org> wrote in
news:beoa30$cnn$1 digitaldaemon.com: 

 Am issuing the command:
 
    dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp
 
 and am receiving the response
 
   Fatal error: unable to open input file 'ShlWApi.h'
   --- errorlevel 1
 
 This is becauses MSSDK (as it installs) is defined as
 "P:\SDKs\Microsoft SDK\." rather than the more sensible
 "P:\SDKs\Microsoft SDK", which means that "%MSSDK%\include" expands to
 "P:\SDKs\Microsoft SDK\.\include". 
I recall seeing a few posts at Mingw's mailing list from people having the same problem with the '.'!
 Alas, DMC++ is the only compiler I have access to that is unable to
 use GetFullPathName() (or a similar mechanism) to deduce a canonical
 version and operate correctly.
 
 Any chance of a fix for this for 8.35? (For the moment I'm editing
 MSDDK's environment settings.)
 
 Matthew
Jul 12 2003
prev sibling parent reply "Walter" <walter digitalmars.com> writes:
Why not just change the -I command to:
    -I"%MSSDK%include"
?

"Matthew Wilson" <matthew stlsoft.org> wrote in message
news:beoa30$cnn$1 digitaldaemon.com...
 Am issuing the command:

    dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp

 and am receiving the response

   Fatal error: unable to open input file 'ShlWApi.h'
   --- errorlevel 1

 This is becauses MSSDK (as it installs) is defined as "P:\SDKs\Microsoft
 SDK\." rather than the more sensible "P:\SDKs\Microsoft SDK", which means
 that "%MSSDK%\include" expands to "P:\SDKs\Microsoft SDK\.\include".

 Alas, DMC++ is the only compiler I have access to that is unable to use
 GetFullPathName() (or a similar mechanism) to deduce a canonical version
and
 operate correctly.

 Any chance of a fix for this for 8.35? (For the moment I'm editing MSDDK's
 environment settings.)

 Matthew
Jul 12 2003
parent reply "Matthew Wilson" <matthew stlsoft.org> writes:
That would be

 P:\SDKs\Microsoft SDK\.include

!

"Walter" <walter digitalmars.com> wrote in message
news:beq1ej$27ki$1 digitaldaemon.com...
 Why not just change the -I command to:
     -I"%MSSDK%include"
 ?

 "Matthew Wilson" <matthew stlsoft.org> wrote in message
 news:beoa30$cnn$1 digitaldaemon.com...
 Am issuing the command:

    dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp

 and am receiving the response

   Fatal error: unable to open input file 'ShlWApi.h'
   --- errorlevel 1

 This is becauses MSSDK (as it installs) is defined as "P:\SDKs\Microsoft
 SDK\." rather than the more sensible "P:\SDKs\Microsoft SDK", which
means
 that "%MSSDK%\include" expands to "P:\SDKs\Microsoft SDK\.\include".

 Alas, DMC++ is the only compiler I have access to that is unable to use
 GetFullPathName() (or a similar mechanism) to deduce a canonical version
and
 operate correctly.

 Any chance of a fix for this for 8.35? (For the moment I'm editing
MSDDK's
 environment settings.)

 Matthew
Jul 12 2003
parent reply "Walter" <walter digitalmars.com> writes:
Sorry, I missed the '.'. Does that mean that any file lookup containing \.\
will fail?

"Matthew Wilson" <matthew stlsoft.org> wrote in message
news:beq2u2$2913$1 digitaldaemon.com...
 That would be

  P:\SDKs\Microsoft SDK\.include

 !

 "Walter" <walter digitalmars.com> wrote in message
 news:beq1ej$27ki$1 digitaldaemon.com...
 Why not just change the -I command to:
     -I"%MSSDK%include"
 ?

 "Matthew Wilson" <matthew stlsoft.org> wrote in message
 news:beoa30$cnn$1 digitaldaemon.com...
 Am issuing the command:

    dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp

 and am receiving the response

   Fatal error: unable to open input file 'ShlWApi.h'
   --- errorlevel 1

 This is becauses MSSDK (as it installs) is defined as
"P:\SDKs\Microsoft
 SDK\." rather than the more sensible "P:\SDKs\Microsoft SDK", which
means
 that "%MSSDK%\include" expands to "P:\SDKs\Microsoft SDK\.\include".

 Alas, DMC++ is the only compiler I have access to that is unable to
use
 GetFullPathName() (or a similar mechanism) to deduce a canonical
version
 and
 operate correctly.

 Any chance of a fix for this for 8.35? (For the moment I'm editing
MSDDK's
 environment settings.)

 Matthew
Jul 13 2003
parent "Matthew Wilson" <matthew stlsoft.org> writes:
I can't speak for "any", but in this case yes.

I don't know how you're implementing internally, but I know that
GetFullPathName() will canonicalise such things

"Walter" <walter digitalmars.com> wrote in message
news:bes9uu$1bo1$1 digitaldaemon.com...
 Sorry, I missed the '.'. Does that mean that any file lookup containing
\.\
 will fail?

 "Matthew Wilson" <matthew stlsoft.org> wrote in message
 news:beq2u2$2913$1 digitaldaemon.com...
 That would be

  P:\SDKs\Microsoft SDK\.include

 !

 "Walter" <walter digitalmars.com> wrote in message
 news:beq1ej$27ki$1 digitaldaemon.com...
 Why not just change the -I command to:
     -I"%MSSDK%include"
 ?

 "Matthew Wilson" <matthew stlsoft.org> wrote in message
 news:beoa30$cnn$1 digitaldaemon.com...
 Am issuing the command:

    dmc -I..\..\..\..\include -I"%MSSDK%\include" ..\sslogfix.cpp

 and am receiving the response

   Fatal error: unable to open input file 'ShlWApi.h'
   --- errorlevel 1

 This is becauses MSSDK (as it installs) is defined as
"P:\SDKs\Microsoft
 SDK\." rather than the more sensible "P:\SDKs\Microsoft SDK", which
means
 that "%MSSDK%\include" expands to "P:\SDKs\Microsoft SDK\.\include".

 Alas, DMC++ is the only compiler I have access to that is unable to
use
 GetFullPathName() (or a similar mechanism) to deduce a canonical
version
 and
 operate correctly.

 Any chance of a fix for this for 8.35? (For the moment I'm editing
MSDDK's
 environment settings.)

 Matthew
Jul 13 2003