Unicode Support in the C++ Editions
Unicode characters can be used in all of our editions, including the C++ editions. This KB entry will cover how to work with Unicode in the C++ editions. When working with Unicode, wide character strings should be used anytime a regular string is required.
Support for Unicode is handled differently in newer versions (2020+) than older versions. This KB covers how to work with all versions and additionally how to update old code.
Newer Versions (2020+)
In 2020 and later, Unicode support is handled with a set of header files that allow the components to work with wide character strings. To use them add the
Updating old code...
To update older code only these two steps should be required:
- Update the include path to point to
/include/unicode . - Remove the "W" suffix from any class/type name.
Older Versions (2016-)
In 2016 and older, Unicode support is handled with a set of parallel classes that work with wide character strings. These classes have the same name as the regular classes, but with a W suffix (e.g. IPPort with Unicode support is IPPortW).
Examples
These examples are functionally equivalent.
2016 | 2020 |
class mySFTP : public SFTPW {
public:
virtual int FireSSHServerAuthentication(SFTPSSHServerAuthenticationEventParamsW* e) {
e->Accept = true;
return 0;
}
virtual int FireSSHStatus(SFTPSSHStatusEventParamsW* e) {
OutputDebugStringW(e->Message);
return 0;
}
};
int main()
{
mySFTP sftp;
sftp.SetSSHUser((LPWSTR)L"user");
sftp.SetSSHPassword((LPWSTR)L"password");
sftp.SSHLogon((LPWSTR)L"sftp.server.com", 22);
sftp.ListDirectory();
sftp.SSHLogoff();
}
|
class mySFTP : public SFTP {
public:
virtual int FireSSHServerAuthentication(SFTPSSHServerAuthenticationEventParams* e) {
e->Accept = true;
return 0;
}
virtual int FireSSHStatus(SFTPSSHStatusEventParams* e) {
OutputDebugStringW(e->Message);
return 0;
}
};
int main()
{
mySFTP sftp;
sftp.SetSSHUser((LPWSTR)L"user");
sftp.SetSSHPassword((LPWSTR)L"password");
sftp.SSHLogon((LPWSTR)L"sftp.server.com", 22);
sftp.ListDirectory();
sftp.SSHLogoff();
}
|
We appreciate your feedback. If you have any questions, comments, or suggestions about this article please contact our support team at kb@nsoftware.com.