Provided Headers, DLLs, and .NET Assembly
The FlowSsh package contains several DLL, library, and header files. To use FlowSshC/Cpp/Net in your application, you will need to:
- Include the correct header file (for FlowSshC/Cpp).
- Link against the appropriate library or add the FlowSshNet assembly to your project.
- Place all required DLLs into the same folder with your application.
The below listing shows the requirements for each case. Note that FlowSshC.lib and FlowSshCpp.lib both implicitly link to FlowSshC32/64.dll. FlowSshC32/64.dll will in turn load CiWinCng32/64.dll. Windows will look for these DLLs when your application starts. Similarly, the .NET framework will load FlowSshNet32/64.dll and its dependencies. To avoid problems, ensure that all required DLLs are in the same folder with your application.
FlowSshC
- Header file: FlowSshC.h
- Library: FlowSshC.lib
- x86 required DLLs: FlowSshC32.dll > CiWinCng32.dll
- x64 required DLLs: FlowSshC64.dll > CiWinCng64.dll
FlowSshCpp
- Header file: FlowSshCpp.h
- Library: FlowSshCpp.lib
- x86 required DLLs: FlowSshC32.dll > CiWinCng32.dll
- x64 required DLLs: FlowSshC64.dll > CiWinCng64.dll
FlowSshNet
- .NET namespace: Bitvise.FlowSshNet
- x86 .NET assembly and its dependencies: FlowSshNet32.dll > FlowSshC32.dll > CiWinCng32.dll
- x64 .NET assembly and its dependencies: FlowSshNet64.dll > FlowSshC64.dll > CiWinCng64.dll
Your project settings determine which set of DLLs will be used. An x86 Visual Studio configuration will use 32-bit DLLs, while x64 will use 64-bit DLLs:
- For native applications (C/C++) that should run on both x86 and x64 operating systems, select MachineX86 (Project > Properties > Linker > Advanced > Target Machine).
- For native applications targeting only x64 operating systems, use MachineX64.
- For managed applications that should run on both x86 and x64 operating systems select the x86 platform target (Project > Properties > Build > Platform target).
- Managed applications targeting only x64 operating systems can use the x64 platform target.
At present, FlowSsh continues to run on Windows XP and Windows Server 2003. On those platforms, CiWinCng32/64.dll is not used. Instead, the required DLLs are CiCpFips32/64.dll and CryptoPP530Fips32/64.dll.
Visual Studio Redistributables
As a C++/CLI library, FlowSshNet requires a specific version of Microsoft Visual Studio run-time libraries where it is used.
- If you use the signed binary versions of FlowSshNet32/64.dll we provide, you will need to ensure that either vcredist_x86.exe or vcredist_x64.exe from the FlowSsh package gets installed on your target machines.
- If you build your own FlowSshNet32/64.dll from the provided C++/CLI source code, you will need to distribute the versions of vcredist_x86.exe or vcredist_x64.exe from your Visual Studio installation directory.
The redistributables are needed for FlowSshNet only. If you're using FlowSsh from native C or C++, FlowSshC and FlowSshCpp do not have this dependency.