diff options
author | John Ankarström <john@ankarstrom.se> | 2022-07-10 23:23:09 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-07-10 23:25:09 +0200 |
commit | 295d423cc47f9ee8a72134dc544892a03b279311 (patch) | |
tree | 3e89b0bbcf42b3053225eb0dff88b887dd16df48 /c/common.cpp | |
parent | 85a4ad2c184ed915915a2fb630415a80ed9a286f (diff) | |
download | EpisodeBrowser-295d423cc47f9ee8a72134dc544892a03b279311.tar.gz |
Convert to C++.
I already hit upon some object-oriented programming patterns in
*listview.c, so I felt that it would be natural to use this as an
opportunity to learn C++.
Diffstat (limited to 'c/common.cpp')
-rw-r--r-- | c/common.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/c/common.cpp b/c/common.cpp new file mode 100644 index 0000000..63adb53 --- /dev/null +++ b/c/common.cpp @@ -0,0 +1,29 @@ +#include <windows.h> +#include <SWI-Prolog.h> + +#include "resource.h" +#include "defs.h" + +/* Convert normal string to TSTR using given codepage. */ +TCHAR * +TszFromSz(const char *sz, int iCp) +{ + TCHAR *tsz; + +#ifdef UNICODE + int cbMultiByte, cchWideChar; + + cbMultiByte = strlen(sz)+1; + cchWideChar = MultiByteToWideChar(iCp, 0, sz, cbMultiByte, NULL, 0); + tsz = (TCHAR *)malloc(cchWideChar*sizeof(WCHAR)); + if (!tsz) return NULL; + if (!MultiByteToWideChar(iCp, 0, sz, cbMultiByte, tsz, cchWideChar)) + return NULL; +#else + tsz = malloc(strlen(sz)+1); + if (!tsz) return NULL; + strcpy(tsz, sz); +#endif + + return tsz; +} |