diff --git a/MSVC/cd-info.vcxproj b/MSVC/cd-info.vcxproj
index f86789f0..56511103 100644
--- a/MSVC/cd-info.vcxproj
+++ b/MSVC/cd-info.vcxproj
@@ -82,7 +82,7 @@
Disabled
- ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ ..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
true
EnableFastChecks
@@ -94,7 +94,7 @@
EditAndContinue
- libcdiod.lib;winmm.lib;%(AdditionalDependencies)
+ libcdiod.lib;msvcrtd.lib;winmm.lib;%(AdditionalDependencies)
$(ProjectName)/$(OutDir)cd-info.exe
Debug;%(AdditionalLibraryDirectories)
true
@@ -106,7 +106,7 @@
Disabled
- ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ ..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -118,17 +118,15 @@
ProgramDatabase
- libcdiod.lib;winmm.lib;%(AdditionalDependencies)
- $(ProjectName)/$(OutDir)cd-info.exe
- Debug;%(AdditionalLibraryDirectories)
+ libcdiod.lib;msvcrtd.lib;winmm.lib;%(AdditionalDependencies)
+ x64\Debug;%(AdditionalLibraryDirectories)
true
- $(ProjectName)/$(OutDir)cd-info.pdb
Console
- ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ ..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
MultiThreaded
@@ -138,7 +136,7 @@
ProgramDatabase
- libcdio.lib;winmm.lib;%(AdditionalDependencies)
+ libcdio.lib;msvcrt.lib;winmm.lib;%(AdditionalDependencies)
$(ProjectName)/$(OutDir)cd-info.exe
Release;%(AdditionalLibraryDirectories)
true
@@ -151,7 +149,7 @@
- ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ ..\MSVC;..\include;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
MultiThreaded
@@ -162,11 +160,9 @@
ProgramDatabase
- libcdio.lib;winmm.lib;%(AdditionalDependencies)
- $(ProjectName)/$(OutDir)cd-info.exe
- Release;%(AdditionalLibraryDirectories)
+ libcdio.lib;msvcrt.lib;winmm.lib;%(AdditionalDependencies)
+ x64\Release;%(AdditionalLibraryDirectories)
true
- $(ProjectName)/$(OutDir)$(ProjectName).pdb
Console
true
true
@@ -174,6 +170,9 @@
+
+
+
diff --git a/MSVC/cd-info.vcxproj.filters b/MSVC/cd-info.vcxproj.filters
index 0ce770cb..a9749666 100644
--- a/MSVC/cd-info.vcxproj.filters
+++ b/MSVC/cd-info.vcxproj.filters
@@ -21,6 +21,15 @@
Source Files
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
diff --git a/MSVC/config.h b/MSVC/config.h
index 22c18c58..73d19234 100644
--- a/MSVC/config.h
+++ b/MSVC/config.h
@@ -59,7 +59,7 @@
/* Define 1 if you want ISO-9660 Joliet extension support. You must have also
libiconv installed to get Joliet extension support. */
-#undef HAVE_JOLIET
+#define HAVE_JOLIET 1
/* Define if you have and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
@@ -92,7 +92,12 @@
#define HAVE_MEMSET 1
/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
+#if !defined(HAVE_SNPRINTF)
+# if defined (_MSC_VER)
+# define HAVE_SNPRINTF 1
+# define snprintf _snprintf
+# endif
+#endif /*HAVE_SNPRINTF*/
/* Define 1 if you have Solaris CD-ROM support */
#undef HAVE_SOLARIS_CDROM
@@ -140,7 +145,12 @@
#undef HAVE_VCDINFO
/* Define to 1 if you have the `vsnprintf' function. */
-#define HAVE_VSNPRINTF 1
+#if !defined(HAVE_VSNPRINTF)
+# if defined (_MSC_VER)
+# define vsnprintf _vsnprintf
+# define HAVE_VSNPRINTF 1
+# endif
+#endif /*HAVE_SNPRINTF*/
/* Define 1 if you have MinGW CD-ROM support */
#define HAVE_WIN32_CDROM 1
@@ -150,6 +160,8 @@
/* Windows SDK includes seek64 */
#define HAVE_LSEEK64 1
+/* And names it differently */
+#define lseek64 _lseeki64
#define _FILE_OFFSET_BITS 64
/* Define as const if the declaration of iconv() needs const. */
diff --git a/MSVC/libcdio.vcxproj b/MSVC/libcdio.vcxproj
index 8ec37803..184e1e3f 100644
--- a/MSVC/libcdio.vcxproj
+++ b/MSVC/libcdio.vcxproj
@@ -86,6 +86,7 @@
$(OutDir)$(ProjectName)d.lib
+ msvcrtd.lib
@@ -102,6 +103,7 @@
$(OutDir)$(ProjectName)d.lib
+ msvcrtd.lib
@@ -113,6 +115,9 @@
Level3
ProgramDatabase
+
+ msvcrt.lib
+
@@ -124,6 +129,9 @@
Level3
ProgramDatabase
+
+ msvcrt.lib
+
diff --git a/include/cdio/types.h b/include/cdio/types.h
index b046842b..c6a13ead 100644
--- a/include/cdio/types.h
+++ b/include/cdio/types.h
@@ -54,8 +54,9 @@ typedef uint8_t ubyte;
to compensate for missing UNIX types is to include a custom
unistd.h that defines them. Such a file is provided with
the libcdio source, in the MSVC/missing directory */
+// Natalia Portillo: the missing directory does not appear in the whole git history, I recreated it.
#if defined(_MSC_VER)
-#include
+#include
#endif
/* default HP/UX macros are broken */
diff --git a/lib/driver/MSWindows/win32_ioctl.c b/lib/driver/MSWindows/win32_ioctl.c
index 030326f5..9edbbaa6 100755
--- a/lib/driver/MSWindows/win32_ioctl.c
+++ b/lib/driver/MSWindows/win32_ioctl.c
@@ -61,8 +61,6 @@
#include
#include "cdio/logging.h"
-#define snprintf _snprintf; // Windows prepends with underscore.
-
#if defined (_XBOX)
#define windows_error(loglevel,i_err) { \
cdio_log(loglevel, "Error: file %s: line %d (%s) %ld\n", \
diff --git a/src/util.h b/src/util.h
index c554c3b7..36dc0159 100644
--- a/src/util.h
+++ b/src/util.h
@@ -84,18 +84,34 @@
# define EXIT_INFO 100
#endif
-#define DEBUG 1
-#if DEBUG
-#define dbg_print(level, s, args...) \
- if (opts.debug_level >= level) \
- report(stderr, "%s: "s, __func__ , ##args)
+//# define DEBUG 1
+#ifdef _MSC_VER
+# if DEBUG
+# define dbg_print(level, s, args, ...) \
+ if (opts.debug_level >= level) \
+ report(stderr, "%s: "s, __func__ , ##args)
+# else
+# define dbg_print(level, s, args, ...)
+# endif
#else
-#define dbg_print(level, s, args...)
+# if DEBUG
+# define dbg_print(level, s, args...) \
+ if (opts.debug_level >= level) \
+ report(stderr, "%s: "s, __func__ , ##args)
+# else
+# define dbg_print(level, s, args...)
+# endif
#endif
-#define err_exit(fmt, args...) \
+#ifdef _MSC_VER
+#define err_exit(fmt, args, ...) \
report(stderr, "%s: "fmt, program_name, ##args); \
- myexit(p_cdio, EXIT_FAILURE)
+ myexit(p_cdio, EXIT_FAILURE)
+#else
+# define err_exit(fmt, args...) \
+ report(stderr, "%s: "fmt, program_name, ##args); \
+ myexit(p_cdio, EXIT_FAILURE)
+#endif
typedef enum
{