MSVC compatibility adjustments.

When using a global variable from a DLL with MSVC special handling is necessary
to avoid going through additional redirection.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31640 a1c6a512-1295-4272-9138-f99709370657
diff --git a/rbutil/ipodpatcher/ipodpatcher.h b/rbutil/ipodpatcher/ipodpatcher.h
index 5d2507c..30a1b1e 100644
--- a/rbutil/ipodpatcher/ipodpatcher.h
+++ b/rbutil/ipodpatcher/ipodpatcher.h
@@ -31,7 +31,17 @@
 /* Size of buffer for disk I/O - 8MB is large enough for any version
    of the Apple firmware, but not the Nano's RSRC image. */
 #define BUFFER_SIZE 8*1024*1024
+
+#ifndef _MSC_VER
 extern unsigned char* ipod_sectorbuf;
+#else
+/* MSVC needs to use dllimport to allow using it directly from a DLL.
+ * See http://support.microsoft.com/kb/90530
+ * Building with MSVC is only when using as DLL.
+ */
+_declspec(dllimport) unsigned char* ipod_sectorbuf;
+#endif
+
 extern int ipod_verbose;
 
 #define FILETYPE_DOT_IPOD 0
diff --git a/rbutil/sansapatcher/sansapatcher.h b/rbutil/sansapatcher/sansapatcher.h
index 4f08eea..80cef4d 100644
--- a/rbutil/sansapatcher/sansapatcher.h
+++ b/rbutil/sansapatcher/sansapatcher.h
@@ -32,7 +32,15 @@
 /* Size of buffer for disk I/O - 8MB is large enough for any version
    of the Apple firmware, but not the Nano's RSRC image. */
 #define BUFFER_SIZE 8*1024*1024
+#ifndef _MSC_VER
 extern unsigned char* sansa_sectorbuf;
+#else
+/* MSVC needs to use dllimport to allow using it directly from a DLL.
+ * See http://support.microsoft.com/kb/90530
+ * Building with MSVC is only when using as DLL.
+ */
+_declspec(dllimport) unsigned char* sansa_sectorbuf;
+#endif
 
 int sansa_read_partinfo(struct sansa_t* sansa, int silent);
 int is_sansa(struct sansa_t* sansa);