We must cast the return value of GetProcAddress.

diff --git a/dlls/winmm/driver.c b/dlls/winmm/driver.c
index a32e847..2c54e57 100644
--- a/dlls/winmm/driver.c
+++ b/dlls/winmm/driver.c
@@ -341,7 +341,7 @@
 
     if ((hModule = LoadLibraryA(fn)) == 0) {cause = "Not a 32 bit lib"; goto exit;}
 
-    lpDrv->d.d32.lpDrvProc = GetProcAddress(hModule, "DriverProc");
+    lpDrv->d.d32.lpDrvProc = (DRIVERPROC)GetProcAddress(hModule, "DriverProc");
     if (lpDrv->d.d32.lpDrvProc == NULL) {cause = "no DriverProc"; goto exit;}
 
     lpDrv->dwFlags          = 0;
diff --git a/msdos/vga.c b/msdos/vga.c
index 84c3dab..3396185 100644
--- a/msdos/vga.c
+++ b/msdos/vga.c
@@ -23,7 +23,8 @@
 static LONG vga_polling,vga_refresh;
 static HANDLE poll_timer;
 
-static HRESULT WINAPI (*pDirectDrawCreate)(LPGUID,LPDIRECTDRAW *,LPUNKNOWN);
+typedef HRESULT WINAPI (*DirectDrawCreateProc)(LPGUID,LPDIRECTDRAW *,LPUNKNOWN);
+static DirectDrawCreateProc pDirectDrawCreate;
 
 static void VGA_DeinstallTimer(void)
 {
@@ -61,7 +62,7 @@
         if (!pDirectDrawCreate)
         {
             HMODULE hmod = LoadLibraryA( "ddraw.dll" );
-            if (hmod) pDirectDrawCreate = GetProcAddress( hmod, "DirectDrawCreate" );
+            if (hmod) pDirectDrawCreate = (DirectDrawCreateProc)GetProcAddress( hmod, "DirectDrawCreate" );
         }
         if (pDirectDrawCreate) pDirectDrawCreate(NULL,&lpddraw,NULL);
         if (!lpddraw) {