我在编写可以在cmd中运行命令的C ++程序时遇到了麻烦。我想让我的C ++程序运行以下命令adb install NativeAndroidTest.apk
当我在cmd中运行此命令时,如果我与NativeAndroidTest.apk
在同一目录中,它会起作用,但当我在不同的目录中时,它会起作用。没关系,但不管我做什么,我都无法让我的C ++程序运行命令。
示例代码:
#include <Windows>
int main() {
system("cd C:\\Users\\brenden\\Documents\\Visual Studio 2017\\Projects\\NativeAndroidTest\\NativeAndroidTest\\NativeAndroidTest.Packaging\\ARM\Release");
system("adb install NativeAndroidTest.apk");
return 0;
}
我通过将代码更改为
来解决问题_wchdir((wchar_t*)"C:\\Users\\brenden\\Documents\\Visual Studio 2017\\Projects\\NativeAndroidTest\\NativeAndroidTest\\NativeAndroidTest.Packaging\\ARM\\Release");
system("adb install NativeAndroidTest.apk");
感谢您的帮助。如果有人添加了正确答案,我会将其标记为正确,以便获得积分。
我想提一下,以防万一其他人读到这个,试图将一个字符串转换为一个wchar指针是一个坏主意,而我的程序只能因为一个侥幸而工作(我将apk存储在程序中工作目录)。
你应该使用像这样的函数将字符串转换为wchar指针
wstring Commands::convertStringToWstring(const std::string &input) {
wchar_t* buffer = new wchar_t[input.size() * 2 + 2];
swprintf(buffer, L"%S", input.c_str());
std::wstring returnWstring = buffer;
delete[] buffer;
return returnWstring;
}