30 #ifndef COMMONUTILS_H_INCLUDED
31 #define COMMONUTILS_H_INCLUDED
37 #if defined(WIN32) && (defined(_MSC_VER) || defined(SUPPORTS_WMAIN))
46 char **m_papszList =
nullptr;
47 ARGVDestroyer(
const ARGVDestroyer &) =
delete;
48 ARGVDestroyer &operator=(
const ARGVDestroyer &) =
delete;
51 explicit ARGVDestroyer(
char **papszList) : m_papszList(papszList)
60 extern "C" int wmain(
int argc,
wchar_t **argv_w,
wchar_t ** );
62 #define MAIN_START(argc, argv) \
63 extern "C" int wmain(int argc, wchar_t **argv_w, wchar_t ** ) \
66 static_cast<char **>(CPLCalloc(argc + 1, sizeof(char *))); \
67 for (int i = 0; i < argc; i++) \
70 CPLRecodeFromWChar(argv_w[i], CPL_ENC_UCS2, CPL_ENC_UTF8); \
72 ARGVDestroyer argvDestroyer(argv);
76 #else // defined(WIN32)
78 #define MAIN_START(argc, argv) int main(int argc, char **argv)
82 #endif // defined(WIN32)
83 #endif // defined(__cplusplus)
87 void CPL_DLL EarlySetConfigOptions(
int argc,
char **argv);
96 std::vector<CPLString> CPL_DLL GetOutputDriversFor(
const char *pszDestFilename,
97 int nFlagRasterVector);
98 CPLString CPL_DLL GetOutputDriverForRaster(
const char *pszDestFilename);
99 void GDALRemoveBOM(
GByte *pabyData);
100 std::string GDALRemoveSQLComments(
const std::string &osInput);