Fix gcc 4.0 warnings.

diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index cdba93d..8da6268 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -1467,7 +1467,7 @@
     cmd.dxfer_len      = pPacket->DataTransferLength;
     cmd.dxferp         = pPacket->DataBuffer;
     cmd.cmdp           = pPacket->Cdb;
-    cmd.sbp            = (char*)pPacket + pPacket->SenseInfoOffset;
+    cmd.sbp            = (unsigned char*)pPacket + pPacket->SenseInfoOffset;
     cmd.timeout        = pPacket->TimeOutValue*1000;
 
     switch (pPacket->DataIn)
@@ -1591,7 +1591,7 @@
     cmd.timeout        = pPacket->TimeOutValue*1000;
 
     if(cmd.mx_sb_len > 0)
-        cmd.sbp = (char*)pPacket + pPacket->SenseInfoOffset;
+        cmd.sbp = (unsigned char*)pPacket + pPacket->SenseInfoOffset;
 
     switch (pPacket->DataIn)
     {
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index eccb190..fa04f82 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -515,7 +515,7 @@
             {
                 IMAGE_IMPORT_BY_NAME *pe_name = get_rva( module, (DWORD)import_list->u1.AddressOfData );
                 WARN("No implementation for %s.%s", name, pe_name->Name );
-                thunk_list->u1.Function = allocate_stub( name, pe_name->Name );
+                thunk_list->u1.Function = allocate_stub( name, (const char*)pe_name->Name );
             }
             WARN(" imported from %s, allocating stub %p\n",
                  debugstr_w(current_modref->ldr.FullDllName.Buffer),
@@ -548,10 +548,10 @@
             IMAGE_IMPORT_BY_NAME *pe_name;
             pe_name = get_rva( module, (DWORD)import_list->u1.AddressOfData );
             thunk_list->u1.Function = (ULONG_PTR)find_named_export( imp_mod, exports, exp_size,
-                                                                    pe_name->Name, pe_name->Hint );
+                                                                    (const char*)pe_name->Name, pe_name->Hint );
             if (!thunk_list->u1.Function)
             {
-                thunk_list->u1.Function = allocate_stub( name, pe_name->Name );
+                thunk_list->u1.Function = allocate_stub( name, (const char*)pe_name->Name );
                 WARN("No implementation for %s.%s imported from %s, setting to %p\n",
                      name, pe_name->Name, debugstr_w(current_modref->ldr.FullDllName.Buffer),
                      (void *)thunk_list->u1.Function );
@@ -1707,10 +1707,10 @@
             sm->Unknown = 0; /* FIXME */
             str.Length = 0;
             str.MaximumLength = MAXIMUM_FILENAME_LENGTH;
-            str.Buffer = sm->Name;
+            str.Buffer = (char*)sm->Name;
             RtlUnicodeStringToAnsiString(&str, &mod->FullDllName, FALSE);
-            ptr = strrchr(sm->Name, '\\');
-            sm->NameOffset = (ptr != NULL) ? (ptr - (char*)sm->Name + 1) : 0;
+            ptr = strrchr(str.Buffer, '\\');
+            sm->NameOffset = (ptr != NULL) ? (ptr - str.Buffer + 1) : 0;
 
             smi->ModulesCount++;
             sm++;
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index ce94a2d..798e481 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -497,7 +497,7 @@
     TRACE("\tMessageId           = %lu\n",pLpcMessageIn->MessageId);
     TRACE("\tSectionSize         = %lu\n",pLpcMessageIn->SectionSize);
     TRACE("\tData                = %s\n",
-      debugstr_an(pLpcMessageIn->Data,pLpcMessageIn->DataSize));
+      debugstr_an((const char*)pLpcMessageIn->Data,pLpcMessageIn->DataSize));
   }
   return 0;
 }
diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
index 438910d..89f6483 100644
--- a/dlls/ntdll/tests/rtl.c
+++ b/dlls/ntdll/tests/rtl.c
@@ -840,7 +840,7 @@
   if (!pRtlComputeCrc32)
     return;
 
-  crc = pRtlComputeCrc32(crc, src, LEN);
+  crc = pRtlComputeCrc32(crc, (LPBYTE)src, LEN);
   ok(crc == 0x40861dc2,"Expected 0x40861dc2, got %8lx\n", crc);
 }
 
diff --git a/dlls/ntdll/time.c b/dlls/ntdll/time.c
index 2b754d1..1906bca 100644
--- a/dlls/ntdll/time.c
+++ b/dlls/ntdll/time.c
@@ -757,7 +757,7 @@
 void WINAPI RtlTimeToElapsedTimeFields( const LARGE_INTEGER *Time, PTIME_FIELDS TimeFields )
 {
     LONGLONG time;
-    UINT rem;
+    INT rem;
 
     time = RtlExtendedLargeIntegerDivide( Time->QuadPart, TICKSPERSEC, &rem );
     TimeFields->Milliseconds = rem / TICKSPERMSEC;