qq_41747698 2021-10-28 17:32 采纳率: 75%
浏览 47
已结题

C++shellexecute 路径切换后运行exe无反应

想用c++启动一个python的exe,但该exe依赖一个exe所在路径下的一个文件夹,
现用shellexecute并setcurrentdirectoryA切换路径后发现这个exe还是只能在绝对路径下运行,一旦切换到相对路径D:/ocrdll/,即exe_path(exe所在的文件夹路径)程序直接退出,请问原因是什么,路径不正确吗,应该如何正确设置

bool ocr::data_gen(LPCWSTR exe_path){//LPCSTR exe_path) {
    
    TCHAR chCurDir[MAX_PATH] = { 0 };
    GetCurrentDirectory(MAX_PATH, chCurDir);
    SetCurrentDirectoryA(exe_path);
    //check path;check file name
    DWORD dwAttributes = ::GetFileAttributesA(exe_path);
    //strcat(StrPath, "\\StorServer.exe");
    printf("current working directory: %s\n", _getcwd(NULL, NULL));
    if (INVALID_FILE_ATTRIBUTES == dwAttributes)
    {
        cout << "no file found" << "\n";
        return false;
    }
    
    ShellExecute(NULL, L"open", L"./data_gen_10.exe", NULL, NULL//此处改exe_path无效, SW_SHOW);
    //SetCurrentDirectory(chCurDir);
    return true;
}

void main(int argc, char** argv) {
    ocr read;
    read.train_exe("D:/ocr_dll");
    //read.data_gen("D:/ocr_dll");
    system("pause");
}

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月4日
  • 已采纳回答 11月1日
  • 修改了问题 10月28日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,