如何让C ++程序运行cmd命令

时间:2017-02-02 10:04:23

标签: c++ cmd adb

我在编写可以在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;
}

0 个答案:

没有答案