mirror of
https://github.com/lifegpc/c-utils.git
synced 2026-06-06 05:08:45 +08:00
add new api
This commit is contained in:
@@ -158,4 +158,23 @@ bool wchar_util::getArgv(char**& argv, int& argc) {
|
||||
void wchar_util::freeArgv(char** argv, int argc) {
|
||||
freePointerList<char*>(argv, argc, nullptr);
|
||||
}
|
||||
|
||||
bool wchar_util::getArgv(std::vector<std::string>& argv) {
|
||||
auto cmd = GetCommandLineW();
|
||||
int argcw = 0;
|
||||
auto argvw = CommandLineToArgvW(cmd, &argcw);
|
||||
if (!argvw) return false;
|
||||
bool ret = true;
|
||||
for (int i = 0; i < argcw; i++) {
|
||||
std::wstring s = argvw[i];
|
||||
std::string r;
|
||||
if (!wchar_util::wstr_to_str(r, s, CP_UTF8)) {
|
||||
ret = false;
|
||||
break;
|
||||
}
|
||||
argv.push_back(r);
|
||||
}
|
||||
LocalFree(argvw);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef _UTIL_WCHAR_UTIL_H
|
||||
#define _UTIL_WCHAR_UTIL_H
|
||||
#include<string>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#if _WIN32
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
@@ -45,6 +46,7 @@ namespace wchar_util {
|
||||
*/
|
||||
bool getArgv(char**& argv, int& argc);
|
||||
void freeArgv(char** argv, int argc);
|
||||
bool getArgv(std::vector<std::string>& argv);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user