You are here: Windows Platforms > Requirements when Using Microsoft Visual Studio

Windows Platforms

First, see the basic instructions for compiling on Windows systems in "Building Applications" in the User's Manual.

The following tables provide supplemental information. Supported Windows Platforms lists the architectures supported on Windows operating systems.

Supported Windows Platforms

Operating System

CPU

Visual Studio® Version

RTI Architecture Abbreviation

.NET Version1The RTI .NET assemblies are supported for both the C++/CLI and C# languages. The type support code generated by rtiddsgen is in C++/CLI; compiling the generated type support code requires Microsoft Visual C++. Calling the assembly from C# requires Microsoft Visual C#.

JDK Version

Windows 7

x86

VS 2010 SP1

i86Win32VS2013

4.0

1.7 or 1.8

x64

VS 2010 SP1

x64Win64VS2010

4.0

Windows 8

x86

VS 2012 Update 4

i86Win32VS2012

4.5

VS 2013 Update 4

i86Win32VS2013

4.5.1

x64

VS 2012 Update 4

x64Win64VS2012

4.5

VS 2013 Update 4

x64Win64VS2013

4.5.1

Windows 8.1

x86

VS 2013 Update 4

i86Win32VS2013

4.5.1

x64

VS 2013 Update 4

x64Win64VS2013

4.5.1

Windows 10

x86

VS 2015 Update 1

i86Win32VS2015

4.6

x64

VS 2015 Update 1

x64Win64VS2015

4.6

Windows 2003

x86

VS 2008 SP1

i86Win32VS2008

2.0

x64

VS 2008 SP1

x64Win64VS2008

2.0

Windows Server 2008 R2

x64

VS 2010 SP1

x64Win64VS2010

4.0

Windows Server 2012 R2

x64

VS 2012 Update 4

x64Win64VS2012

4.5

VS 2013 Update 4

x64Win64VS2013

4.5.1

VS 2015 Update 1

x64Win64VS2015

4.6

Windows Vista

x86

VS 2008 SP1

i86Win32VS2008

2.0

x64

VS 2008 SP1

x64Win64VS2008

2.0

Windows XP Pro SP2 2Windows XP: If you are using JDK 5.0 and want to use Intel’s HyperThreading technology, use JDK 5.0 Update 6 (build 1.5.0_06), which includes fixes to JNI and HyperThreading. (If you must use Update 5 (build 1.5.0_05), you should disable HyperThreading.)3Windows XP does not support IP_TOS unless registry changes are made. See http://support.microsoft.com/kb/248611, http://www.microsoft.com/technet/technetmag/issues/2007/02/CableGuy/default.aspx.

x86

VS 2008 SP1

i86Win32VS2008

2.0

x64

VS 2008 SP1

x64Win64VS2008

2.0

The compiler flags and the libraries you will need to link into your application are listed in the following tables:

See also:

To use libraries that are statically linked into an application, link in all of the libraries listed in one of the rows of these tables. To use dynamic link libraries (DLL) on Windows systems, link in all of the libraries listed in one of the ‘Dynamic’ sections of the appropriate table. When the application executes, it will attempt to dynamically link in the libraries, which are in the directory $(NDDSHOME)\lib\<architecture> (this directory must be placed on the path before the executable is started).

Windows libraries are provided in formats with and without debugging symbols. Choose the format appropriate for your current work. Do not mix libraries built for different formats.

Running Instructions for Windows Architectures provides details on the environment variables that must be set at run time for a Windows architecture.

For details on how the libraries were built by RTI, see Library-Creation Details for Windows Architectures. This information is provided strictly for informational purposes; you do not need to use these parameters to compile your application. You may find this information useful if you are involved in any in-depth debugging.

Building Instructions for Windows Host Architectures

API

Library Format

RTI Libraries or Jar Files 4Choose nddscpp*.* for the Traditional C++ API or nddscpp2*.* for the Modern C++ API. 5The RTI C/C++/Java libraries are in <NDDSHOME>\lib\<architecture>. Jar files are in <NDDSHOME>\lib\java. 6Some library names include a [version], which depends on your version of .NET.  For .NET 2.0, omit the [version].For other .NET versions, use the digits, such as 451 or 46. See Supported Windows Platforms.for supported .NET versions.

Required System Libraries

Required Compiler Flags

C

Static Release

nddscz.lib
nddscorez.lib
rticonnextmsgcz.lib

netapi32.lib advapi32.lib user32.lib ws2_32.lib

/D “RTI_WIN32” /MT

Static Debug

nddsczd.lib
nddscorezd.lib
rticonnextmsgczd.lib

/D “RTI_WIN32” /MTd

Dynamic Release

nddsc.lib
nddscore.lib
rticonnextmsgc.lib

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MD

Dynamic Debug

nddscd.lib
nddscored.lib
rticonnextmsgcd.lib

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MDd

C++
(Traditional and Modern APIs)

Static Release

nddscppz.lib
or
nddscpp2z.lib

nddscz.lib
nddscorez.lib
rticonnextmsgcppz.lib

netapi32.lib
advapi32.lib
user32.lib
ws2_32.lib

/D “RTI_WIN32” /MT

Static Debug

nddscppzd.lib
or
nddscpp2zd.lib

nddsczd.lib
nddscorezd.lib
rticonnextmsgcppzd.lib

/D “RTI_WIN32” /MTd

Dynamic Release

nddscpp.lib
or
nddscpp2.lib

nddsc.lib
nddscore.lib
rticonnextmsgcpp.lib

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MD

Dynamic Debug

nddscppd.lib
or
nddscpp2d.lib

nddscd.lib
nddscored.lib
rticonnextmsgcppd.lib

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MDd

C++/CLI

Release

nddscpp.lib
nddsc.lib
nddscore.lib

nddsdotnet[version].dll
rticonnextmsgdotnet[version].dll

N/A

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MD
/D “WIN32_LEAN_AND_MEAN”

Debug

nddscppd.lib
nddscd.lib
nddscored.lib

nddsdotnet[version]d.dll
rticonnextmsgdotnet[version]d.dll

/D “RTI_WIN32”
/D “NDDS_DLL_VARIABLE”
/MDd
/D “WIN32_LEAN_AND_MEAN”

C#

Release

nddsdotnet[version].dll

rticonnextmsgdotnet[version].dll

N/A

N/A

Debug

nddsdotnet[version]d.dll

rticonnextmsgdotnet[version]d.dll

Java

Release

nddsjava.jar
rticonnextmsg.jar

N/A

N/A

Debug

nddsjavad.jar
rticonnextmsgd.jar

 

Building Instructions for Windows Target Architectures

API

Library Format

RTI Libraries or Jar Files 7The RTI C/C++/Java libraries are in <NDDSHOME>\lib\<architecture>. Jar files are in <NDDSHOME>\lib\java. 8The *rticonnextmsg* library only applies if you have the RTI Connext DDS Professional, Evaluation, or Basic package type. It is not provided with the RTI Connext DDS Core package type. 9Some library names include a [version], which depends on your version of .NET.  For .NET 2.0, omit the [version].For other .NET versions, use the digits, such as 451 or 46. See Supported Windows Platforms.for supported .NET versions.

Required System Libraries

Required Compiler Flags

C

Static Release

nddscz.lib
nddscorez.lib
rticonnextmsgcz.lib

netapi32.lib
advapi32.lib
user32.lib
ws2_32.lib

/Gd /MT /D “WIN32”
/D “RTI_WIN32”
/D “NDEBUG”

Static Debug

nddsczd.lib
nddscorezd.lib
rticonnextmsgczd.lib

/Gd /MTd /D “WIN32”
/D “RTI_WIN32”

Dynamic Release

nddsc.lib
nddscore.lib
rticonnextmsgc.lib

/Gd /MD /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”
/D “NDEBUG”

Dynamic Debug

nddscd.lib
nddscored.lib
rticonnextmsgcd.lib

/Gd /MDd /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”

C++

Static Release

nddscppz.lib
nddscz.lib
nddscorez.lib
rticonnextmsgcppz.lib

netapi32.lib
advapi32.lib
user32.lib
ws2_32.lib

/Gd /EHsc /MT /D “WIN32”
/D “RTI_WIN32”
/D “NDEBUG”

Static Debug

nddscppzd.lib
nddsczd.lib
nddscorezd.lib
rticonnextmsgcppzd.lib

/Gd /EHsc /MTd /D “WIN32”
/D “RTI_WIN32”

Dynamic Release

nddscpp.lib
nddsc.lib
nddscore.lib
rticonnextmsgcpp.lib

/Gd /EHsc /MD /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”
/D “NDEBUG”

Dynamic Debug

nddscppd.lib
nddscd.lib
nddscored.lib
rticonnextmsgcppd.lib

/Gd /EHsc /MDd /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”

C#

Release

nddsdotnet<version>.dll

rticonnextmsgdotnet<version>.dll

N/A

N/A

Debug

nddsdotnet<version>d.dll

rticonnextmsgdotnet<version>d.dll

C++/CLI

Release

nddscpp.lib
nddsc.lib
nddscore.lib

rticonnextmsgdotnet<version>.dll

netapi32.lib
advapi32.lib
user32.lib
ws2_32.lib

/Gd /EHsc /MD /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”
/D “NDEBUG”

Debug

nddscppd.lib
nddscd.lib
nddscored.lib

rticonnextmsgdotnet<version>d.dll

/Gd /EHsc /MDd /D “WIN32”
/D “NDDS_DLL_VARIABLE”
/D “RTI_WIN32”

Java

Release

nddsjava.jar
rticonnextmsg.jar

N/A

N/A

Debug

nddsjavad.jar
rticonnextmsgd.jar

Running Instructions for Windows Architectures

RTI Architecture

Library Format

Environment Variables10%Path% represents the value of the Path variable prior to changing it to support Connext DDS. When using nddsjava.jar, the Java virtual machine (JVM) will attempt to load release versions of the native libraries. When using nddsjavad.jar, the JVM will attempt to load debug versions of the native libraries.

All supported Windows architectures for Java

N/A

Path=%NDDSHOME%\lib\<architecture>; %Path%

All other supported Windows architectures

Static (Release and Debug)

None required

Dynamic (Release and Debug)

Path=%NDDSHOME%\lib\<architecture>; %Path%

 

Library-Creation Details for Windows Architectures

RTI Architecture

Library Format

Compiler Flags Used by RTI

All 32-bit Windows architectures for .NET

Dynamic Release

/O2 /GL /D "WIN32" /D "NDEBUG" /D "NDDS_DLL_VARIABLE"
/D "_WINDLL" /D "_UNICODE" /D "UNICODE" /FD /EHa /MD /c
/Zi /clr /TP

Dynamic Debug

/Od /D "WIN32" /D "_DEBUG" /D "NDDS_DLL_VARIABLE"
/D "_WINDLL" /D "_UNICODE" /D "UNICODE" /FD /EHa /MDd /c
/Zi /clr /TP

All 64-bit Windows architectures for .NET

Dynamic Release

/O2 /GL /D "WIN64" /D "NDEBUG" /D "NDDS_DLL_VARIABLE"
/D "_WINDLL" /D "_UNICODE" /D "UNICODE" /FD /EHa /MD
/c /Zi /clr /TP

Dynamic Debug

/Od /D "WIN64" /D "_DEBUG" /D "NDDS_DLL_VARIABLE"
/D "_WINDLL" /D "_UNICODE" /D "UNICODE" /FD /EHa
/MDd /c /Zi /clr /TP

All 32-bit Windows architectures for Java

Dynamic Release

-target 1.4 –source 1.4

Dynamic Debug

-target 1.4 –source 1.4 -g

All 64-bit Windows architectures for Java

Dynamic Release

-target 1.4 –source 1.6

Dynamic Debug

-target 1.4 –source 1.6 -g

i86Win32VS2008

Static Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MTd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGE T=\"i86Win32VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MDd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

i86Win32VS2010

Static Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MT
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MTd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGE T=\"i86Win32VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MDd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

i86Win32VS2012

Static Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MT
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MD
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGE T=\"i86Win32VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

i86Win32VS2013

Static Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MT
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MD
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGE T=\"i86Win32VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

i86Win32VS2015

Static Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MT
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /O2 /Zi /MD
/EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGET=\"i86Win32VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

-DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=I80586 -DTARGE T=\"i86Win32VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

x64Win64VS2008

 

Note: linker requires /MACHINE:X64 option.

Static Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MTd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2008\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MDd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

x64Win64VS2010

 

Note: linker requires /MACHINE:X64 option.

Static Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MTd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2010\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/Od /ZI /MDd /EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

x64Win64VS2012

 

Note: linker requires /MACHINE:X64 option.

 

Static Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2012\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

x64Win64VS2013

 

Note: linker requires /MACHINE:X64 option.

Static Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2013\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

x64Win64VS2015

 

Note: linker requires /MACHINE:X64 option.

Static Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MT /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Dynamic Release

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN
/O2 /Zi /MD /EHsc -D_CRT_SECURE_NO_DEPRECATE -DNDEBUG -c

Static Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MTd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Dynamic Debug

/W3 -DPtrIntType=long -DCSREAL_IS_FLOAT -DCPU=AMD64-DTARGET=\"x64Win64VS2015\" -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN /Od /ZI /MDd
/EHsc /RTC1 -D_CRT_SECURE_NO_DEPRECATE -c

Requirements when Using Microsoft Visual Studio

Windows Registry Setting for Better Performance

On all Windows systems prior to Windows Vista, the following registry setting change will improve performance when sending UDP datagrams of size larger than 1024 bytes:

Under HKEY_LOCAL_MACHINE, SYSTEM, CurrentControlSet, Services, AFD, Parameters, add the following:

DWORD: Name=FastSendDatagramThreshold, Value = 65536

This will improve the Connext DDS performance for data sizes larger than 1024 bytes (RTPS overhead included). It allows the datagrams to bypass the I/O subsystem by using a blocking send call instead of a buffer copy in the Windows Network stack.

Use Dynamic MFC Library, Not Static

To avoid communication problems in your Connext DDS application, use the dynamic MFC library, not the static version.

If you use the static version, your Connext DDS application may stop receiving DDS samples once the Windows sockets are initialized.

.NET API Requires Thread Affinity

To maintain proper concurrency control, .NET threads that call a Connext DDS API must correspond one-to-one with operating system threads. In most applications, this will always be the case. However, it may not be the case if the threads you are using are managed in a more advanced way—for example, Microsoft SQL Server does this, or you may do so in your own application.

If you intend to call Connext DDS APIs from explicitly managed threads, you must first call Thread.BeginThreadAffinity() in each such thread to ensure that it remains attached to a single operating system thread. See http://msdn.microsoft.com/en-us/library/system.threading.thread.beginthreadaffinity.aspx.

Note: When done making RTI calls from a given thread, call Thread.EndThreadAffinity().

In any case, be sure to consult the RTI API documentation for more information about the thread safety contracts of the operations you use.

ODBC Database Compatibility

To use the Durable Writer History and Durable Reader State features, you must install a relational database such as MySQL.

In principle, you can use any database that provides an ODBC driver, since ODBC is a standard. However, not all ODBC databases support the same feature set. Therefore, there is no guarantee that the persistent durability features will work with an arbitrary ODBC driver.

We have tested the following driver:

Note: Starting with 4.5e, support for the TimesTen database has been removed.

To use MySQL, you also need the MySQL ODBC 5.1.6 (or higher) driver.

The Durable Writer History and Durable Reader State features have been tested with the following architectures:

For more information on database setup, please see the RTI Connext DDS Core Libraries Getting Started Guide Addendum for Database Setup.

PPP Link Support for Windows XP Systems

To use a Windows XP point-to-point protocol (PPP) link (such as a serial cable), the UDP transport properties for the Connext DDS applications running on the PPP server machine must be configured with multicast disabled for the PPP server interface(s).

To disable multicast for an interface, change the UDPv4 transport properties as follows:

// Disable multicast for PPP interface because it causes problems:
char *bad_interfaces[] = { "192.168.250.100"}; // interface addr
const int num_bad_interfaces =
	sizeof(bad_interfaces)/sizeof(bad_interfaces[0]);
UDPv4Properties.parent.deny_multicast_interfaces_list =
    bad_interfaces;
UDPv4Properties.parent.deny_multicast_interfaces_list_length =
    num_bad_interfaces;

Failure to do so will result in Connext DDS being unable to send any data at all over the PPP link.

Notes:

Support for Modern C++ API

Connext DDS provides two different C++ APIs, which we refer to as the "Traditional C++" and "Modern C++" APIs. The Modern C++ API is available for all Windows platforms.

For more information on Modern C++, see "Traditional Vs. Modern C++" in the User's Manual.

Multicast Support

Multicast is supported on all platforms and is configured out of the box. That is, the default value for the initial peers list (NDDS_DISCOVERY_PEERS) includes a multicast address. See the online documentation for more information.

Supported Transports

Shared memory: Shared memory is supported and enabled by default. The Windows operating system manages the shared memory resources automatically. Cleanup is not required.

UDPv4: Supported and enabled by default.

UDPv6: Supported but disabled on architectures that use Visual Studio. The peers list (NDDS_DISCOVERY_PEERS) must be modified to support UDPv6. No Traffic Class support.

TCP/IPv4: Supported on architectures that use Visual Studio. (This is not a built-in transport.)

Monotonic Clock Support

The monotonic clock (described in "Clock Selection" in the User's Manual) is supported on all Windows platforms.

Thread Configuration

Thread Settings for Windows Platforms lists the thread settings for Windows platforms.

Thread-Priority Definitions for Windows Platforms and Thread Kinds for Windows Platforms list the thread-priority definitions and thread kinds, respectively.

Thread Settings for Windows Platforms

Applicable Thread

DDS_ThreadSettings_t

Platform-Specific Setting

Asynchronous Publisher,
Asynchronous flushing thread,

mask

OS default thread type

priority

0

stack_size

OS default thread stack size

cpu_list

CPU core affinity not supported

cpu_rotation

CPU core affinity not supported

Database thread

mask

DDS_THREAD_SETTINGS_STDIO

priority

-3

stack_size

OS default thread stack size

cpu_list

CPU core affinity not supported

cpu_rotation

CPU core affinity not supported

Event thread

mask

DDS_THREAD_SETTINGS_STDIO | DDS_THREAD_SETTINGS_FLOATING_POINT

priority

-2

stack_size

OS default thread stack size

cpu_list

CPU core affinity not supported

cpu_rotation

CPU core affinity not supported

ReceiverPool threads

mask

DDS_THREAD_SETTINGS_STDIO | DDS_THREAD_SETTINGS_FLOATING_POINT

priority

2

stack_size

OS default thread stack size

cpu_list

CPU core affinity not supported

cpu_rotation

CPU core affinity not supported

Thread-Priority Definitions for Windows Platforms

Thread-Priority Definition

Operating-System Priority

THREAD_PRIORITY_DEFAULT

0

THREAD_PRIORITY_HIGH

3

THREAD_PRIORITY_ABOVE_NORMAL

2

THREAD_PRIORITY_NORMAL

0

THREAD_PRIORITY_BELOW_NORMAL

-2

THREAD_PRIORITY_LOW

-3

 

Thread Kinds for Windows Platforms

Thread Kinds

Operating-System Configuration11See Windows manuals for additional information.

DDS_THREAD_SETTINGS_FLOATING_POINT 

N/A

DDS_THREAD_SETTINGS_STDIO

DDS_THREAD_SETTINGS_REALTIME_PRIORITY

DDS_THREAD_SETTINGS_PRIORITY_ENFORCE

Support for Controlling CPU Core Affinity for RTI Threads

Support for controlling CPU core affinity (described in "Controlling CPU Core Affinity" in the User's Manual) is not available for Windows platforms.

Durable Writer History and Durable Reader State Features

The Durable Writer History and Durable Reader State features are only supported on platforms that use 32-bit/64-bit Visual Studio 2008 and Visual Studio 2010.

Libraries Required for Using Distributed Logger Support

RTI Distributed Logger is supported on all Windows platforms. lists the additional libraries you will need in order to use Distributed Logger.

Additional Libraries for using RTI Distributed Logger

Language

Static

Dynamic

Release

Debug

Release

Debug

C

rtidlcz.lib

rtidlczd.lib

rtidlc.dll

rtidlcd.dll

C++ (Traditional API)

rtidlcz.lib
rtidlcppz.lib

rtidlczd.lib
rtidlcppzd.lib

rtidlc.dll
rtidlcpp.dll

rtidlcd.dll
rtidlcppd.dll

Java

N/A

N/A

distlog.jar
distlogdatamodel.jar

distlogd.jar
distlogdatamodeld.jar

Libraries Required for Using Monitoring

Make sure you are consistent in your use of static, dynamic, debug and release versions of the libraries. For example, if your Connext DDS application is linked with the static release version of the Connext DDS libraries, you will need to also use the static release version of the monitoring library. Do not link both static and dynamic libraries. Similarly, do not mix release and debug libraries.

If you are statically linking your application with DDS libraries and you want to add monitoring to your application, you will also need to statically link the monitoring library. The library cannot be loaded dynamically strictly through the QoS profile because it also depends on DDS to publish its data. Therefore, it depends on DDS; the DDS functionality would cause duplicate symbols to be found resulting, in the termination of the process.

Additional Libraries for Using Monitoring

Static Release

Static Debug

Dynamic Release

Dynamic Debug

rtimonitoringz.lib
Psapi.lib

rtimonitoringzd.lib
Psapi.lib

rtimonitoring.lib
rtimonitoring.dll

rtimonitoringd.lib
rtimonitoringd.dll

Libraries Required for Using RTI Secure WAN Transport APIs

To use the Secure WAN Transport APIs, add the libraries from to your project files.

Additional Libraries for Using RTI Secure WAN Transport APIs on Windows Systems

Library Format

RTI Secure WAN Transport Libraries12These libraries are in <<NDDSHOME>\lib\<architecture>

OpenSSL Libraries13These libraries are in <openssl install dir>\<architecture>/lib, where <openssl install dir> is where OpenSSL is installed

Dynamic Release

nddstransportwan.lib

nddstransporttls.lib

ssleay32.lib libeay32.lib

Dynamic Debug

nddstransporttlsd.lib

nddstransportwand.lib

Static Release

nddstransportwanz.lib

nddstransporttlsz.lib

Static Debug

nddstransportwanzd.lib

nddstransporttlszd.lib

Libraries Required for Using RTI TCP Transport APIs

To use the TCP Transport APIs, link against the additional libraries from Additional Libraries for Using RTI TCP Transport APIs on Windows Systems or Additional Libraries for using RTI TCP Transport APIs on Windows Systems with TLS Enabled. (Select the files appropriate for your chosen library format.)

Additional Libraries for Using RTI TCP Transport APIs on Windows Systems

Library Format

RTI TCP Transport Libraries14The libraries are in <NDDSHOME>\lib\<architecture>

Dynamic Release

nddstransporttcp.dll

Dynamic Debug

nddstransporttcpd.dll

Static Release

nddstransporttcpz.lib

Static Debug

nddstransporttcpzd.lib

 

Additional Libraries for using RTI TCP Transport APIs on Windows Systems with TLS Enabled

Library Format

RTI TLS Libraries15The libraries are in <NDDSHOME>\lib\<architecture>

Dynamic Release

nddstls.dll

Dynamic Debug

nddstlsd.dll

Static Release

nddstlsz.dll

Static Debug

nddstlszd.dll

OpenSSL Libraries

ssleay32.lib

libeay32.lib

 

© 2016 RTI