Hi Paul,
Thanks for this update; I was able to compile all my FF3 projects with this new version except one.
In this specific project, I include the file winsock2.inc from Jose Roca.
#INCLUDE "winsock2.inc"
If the "Minimum Operating System to Support" is Windows Vista /2008 Server or Windows 7 the project compiles fine.
If the "Minimum Operating System to Support" is Windows 200, Windows XP or Windows 2003 Server I get the error "Undefined equate line 124: %AF_BTM = %AF_BTH
See the screen shot.
Thanks for your help.
Jean-Pierre
Remove it from ws2def.inc. It's no longer used by Windows.
Hi Jose,
Thanks for your quick answer; I comment the line 124 (%AF_BTM = %AF_BTH) in the file ws2def.inc but then I got another error message in WINSOCK2.INC
Undefined equate line 500: %PF_BTH = %AF_BTH
Do I have to comment this line also ?
I put another screen shot below
Thanks for your support.
Jean-Pierre
The attachment includes winsock2.inc and ws2def.inc modified.
I believe this is the exact same question that another FF user emailed me on last night. It was because of equate errors due to the winsock2 and ws2def includes. I'll follow this thread just in case a better solution comes up.
... looks like Jose has already got that "better solution". :)
Jose, Paul we're almost there ... with the new includes I get now a new message from MPRAPI.INC
Undefined equate %MPRNP_Ipv6 = %RASNP_Ipv6
See a new screen shot below.
PS: the behavior is the same as previously i.e.
With Windows Vista /2008 Server or Windows 7 the project compiles fine.
I get the errror only with Windows 200, Windows XP or Windows 2003 Server.
Thanks for your efforts.
Jean-Pierre
Modified include.
Developing for deprecated Windows versions (yes, M$ has decided to deprecate XP), has its risks. I had several applications that worked fine with XP, but not with Windows 7.
To solve this problem, I don't override %WINVER and use the customary cbSize = SIZEOF(<name of the structure>), but I check the Windows version and fill the cbSize member with the appropriate value.
Also, Windows 7 requires the use of a manifest with compatibility and trustinfo sections. Otherwise, sometimes Windows will display a warning message when you end the application.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="ApplicationName"
type="win32"/>
<description>Optional description of your application</description>
<!-- Compatibility section -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
<!-- Trustinfo section -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
</assembly>
Thanks Jose; it works perfectly with the new version of MPRAPI.INC
By the way I discovered that I could just include IPEXPORT.INC instead of IPHLPAPI.INC for my needs (just need to have the ICMP_ECHO_REPLY structure).
Thanks for your fantastic support.
Jean-Pierre
As my headers strictly follow the names (with an .inc extension instead of .h), you only have to look at the MSDN documentation to know which file you need to include.
The MSDN documentation for the ICMP_ECHO_REPLY Structure says:
Header: Ipexport.h (include Iphlpapi.h)
http://msdn.microsoft.com/en-us/library/aa366053%28VS.85%29.aspx
Thanks for the precision.
In this case on the MSDN website they mentionned :
QuoteThe ICMP_ECHO_REPLY structure is defined in the Ipexport.h header file which is automatically included in the Iphlpapi.h header file. The Ipexport.h header file should never be used directly.
But at least it works fine for me when I include only Ipexport.inc ...
Jean-Pierre