fixed BaseAddress
Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
_____
Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
--- trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
2005-12-02 09:32:31 UTC (rev 19825)
+++ trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
2005-12-02 12:47:42 UTC (rev 19826)
@@ -90,6 +90,8 @@
defines.push_back ( "_CRT_NON_CONFORMING_SWPRINTFS" );
defines.push_back ( "STDCALL=__stdcall" );
+ string baseaddr;
+
while ( ifs_list.size() )
{
const IfableData& data = *ifs_list.back();
@@ -138,6 +140,12 @@
else
defines.push_back ( defs[i]->name );
}
+ for ( i = 0; i < data.properties.size(); i++ )
+ {
+ Property& prop = *data.properties[i];
+ if ( strstr ( module.baseaddress.c_str(),
prop.name.c_str() ) )
+ baseaddr = prop.value;
+ }
}
vector<string> header_files;
@@ -345,7 +353,7 @@
fprintf ( OUT,
"\t\t\t\tAdditionalOptions=\" /DRIVER /ALIGN:0x20 /SUBSYSTEM:NATIVE
/SECTION:INIT,D /NODEFAULTLIB
/IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096\"\r\n" );
fprintf ( OUT,
"\t\t\t\tIgnoreAllDefaultLibraries=\"TRUE\"\r\n" );
fprintf ( OUT,
"\t\t\t\tEntryPointSymbol=\"%s\"\r\n", module.entrypoint ==
"" ?
"DriverEntry" : module.entrypoint.c_str ());
- fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", module.baseaddress == "" ?
"0x10000" :
module.baseaddress.c_str ());
+ fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", baseaddr == "" ?
"0x10000" :
baseaddr.c_str ());
}
else if ( exe )
{
@@ -354,14 +362,14 @@
fprintf ( OUT,
"\t\t\t\tAdditionalOptions=\" /SUBSYSTEM:NATIVE /NODEFAULTLIB
/SECTION:INIT,D /ALIGN:0x80\"\r\n" );
fprintf ( OUT,
"\t\t\t\tIgnoreAllDefaultLibraries=\"TRUE\"\r\n" );
fprintf ( OUT,
"\t\t\t\tEntryPointSymbol=\"KiSystemStartup\"\r\n" );
- fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", module.baseaddress.c_str ());
+ fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", baseaddr.c_str ());
}
else if ( module.type == NativeCUI )
{
fprintf ( OUT,
"\t\t\t\tAdditionalOptions=\" /SUBSYSTEM:NATIVE /NODEFAULTLIB
/ALIGN:0x20\"\r\n" );
fprintf ( OUT,
"\t\t\t\tIgnoreAllDefaultLibraries=\"TRUE\"\r\n" );
fprintf ( OUT,
"\t\t\t\tEntryPointSymbol=\"NtProcessStartup\"\r\n" );
- fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", module.baseaddress.c_str ());
+ fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", baseaddr.c_str ());
}
else if ( module.type == Win32CUI ||
module.type == Win32GUI )
{
@@ -371,7 +379,7 @@
else if ( dll )
{
fprintf ( OUT,
"\t\t\t\tEntryPointSymbol=\"%s\"\r\n", module.entrypoint ==
"" ?
"DllMain" : module.entrypoint.c_str ());
- fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", module.baseaddress == "" ?
"0x40000" :
module.baseaddress.c_str ());
+ fprintf ( OUT,
"\t\t\t\tBaseAddress=\"%s\"\r\n", baseaddr == "" ?
"0x40000" :
baseaddr.c_str ());
}
fprintf ( OUT,
"\t\t\t\tTargetMachine=\"%d\"/>\r\n", 1 );
}