30#ifndef COMMONUTILS_H_INCLUDED
31#define COMMONUTILS_H_INCLUDED
37#if defined(WIN32) && (defined(_MSC_VER) || defined(SUPPORTS_WMAIN))
42#include "cpl_string.h"
48 explicit ARGVDestroyer(
char** papszList) : m_papszList(papszList) {}
49 ~ARGVDestroyer() { CSLDestroy(m_papszList); }
52extern "C" int wmain(
int argc,
wchar_t ** argv_w,
wchar_t ** );
54#define MAIN_START(argc, argv) \
56 int wmain( int argc, wchar_t ** argv_w, wchar_t **
) \
58 char **argv = static_cast<char**>(CPLCalloc(argc + 1, sizeof(char*))); \
59 for( int i = 0; i < argc; i++ ) \
61 argv[i] = CPLRecodeFromWChar( argv_w[i], CPL_ENC_UCS2, CPL_ENC_UTF8 ); \
63 ARGVDestroyer argvDestroyer(argv);
69#define MAIN_START(argc, argv) \
70 int main( int argc, char ** argv )
80void CPL_DLL EarlySetConfigOptions(
int argc,
char ** argv );
86#include "cpl_string.h"
89std::vector<CPLString> CPL_DLL GetOutputDriversFor(
const char* pszDestFilename,
90 int nFlagRasterVector);
91CPLString CPL_DLL GetOutputDriverForRaster(
const char* pszDestFilename);