[IGSTK-Users] snprintf versus _snprintf
Steve Robbins
smr at sumost.ca
Thu Sep 21 11:44:36 EDT 2006
Quoting David Gobbi <dgobbi at atamai.com>:
> Thanks for the guilt and the patches ;)
I'm now building the sandbox code and ran into the same issues again.
Clearly, these things should be abstracted away into a common library
where the ugly conditional compilation can be written once and safely
hidden.
And -- lo and behold -- I found itksys::SystemTools has at least one
of them! The function Delay() can replace the Sleep()/usleep()
conditional.
I didn't find the snprintf() #define, but if you have any sway over
the ITK group, it'd be nice to put it in there.
There's a third WIN32/CYGWIN conflict in igstkSocketCommunication to
do with WSAStartup(). I don't know what this is, so I just hacked it
to compile. Please check this before committing to CVS.
Index: Examples/DeckOfCardRobot/RobotCommunication.cxx
===================================================================
RCS file:
/cvsroot/IGSTK/Sandbox/Examples/DeckOfCardRobot/RobotCommunication.cxx,v
retrieving revision 1.11
diff -u -b -B -r1.11 RobotCommunication.cxx
--- Examples/DeckOfCardRobot/RobotCommunication.cxx 17 Jul 2006
22:58:27 -0000 1.11
+++ Examples/DeckOfCardRobot/RobotCommunication.cxx 21 Sep 2006
15:26:08 -0000
@@ -17,10 +17,11 @@
#include "RobotCommunication.h"
#include "time.h"
#include <string.h>
+#include <itksys/SystemTools.hxx>
// On MSVC and Borland, snprintf is not defined but _snprintf is.
// This should probably be checked by CMake instead of here.
-#if defined(WIN32) || defined(_WIN32)
+#if defined(__BORLANDC__) || defined(_MSC_VER)
#ifndef snprintf
#define snprintf _snprintf
#endif
@@ -141,13 +142,7 @@
}
// to prevent communication timeout
- #if defined (_WIN32) || defined (WIN32)
- Sleep(3000); // Windows Sleep uses miliseconds
- #else
- usleep( 3000 * 1000 ); // linux usleep uses microsecond
- #endif
-
-
+ itksys::SystemTools::Delay(3000);
if (!ASYNCMODE)
{
Index: Source/igstkSocketCommunication.cxx
===================================================================
RCS file: /cvsroot/IGSTK/Sandbox/Source/igstkSocketCommunication.cxx,v
retrieving revision 1.14
diff -u -b -B -r1.14 igstkSocketCommunication.cxx
--- Source/igstkSocketCommunication.cxx 11 Apr 2006 18:08:36 -0000 1.14
+++ Source/igstkSocketCommunication.cxx 21 Sep 2006 15:26:08 -0000
@@ -722,7 +722,7 @@
igstkLogMacro( DEBUG, "SocketCommunication::\
InternalOpenCommunicationProcessing called ...\n");
-#ifdef WIN32
+#if WIN32 && ! __CYGWIN__
WORD wVersionRequested;
WSADATA wsaData;
-Steve
More information about the IGSTK-Users
mailing list