【问题标题】:Pattern matching in system path using C++ functionalities使用 C++ 功能在系统路径中进行模式匹配
【发布时间】:2013-12-30 13:44:51
【问题描述】:

我正在安装基于 Qt 的特定 Windows GUI 应用程序,该应用程序需要将 DLL 放置在 PATH 系统环境变量中。对于放置,我可以设法将Installation_path 附加到PATH。但是在卸载我的应用程序时,我想搜索我的安装路径在哪里,然后我必须删除它们并像往常一样放置正常路径而不修改它。正则表达式是我的伴侣还是这样做的任何其他方式?

附:我不能使用boost lib。

【问题讨论】:

  • 您应该测试至少 4 种情况:常见的情况是它位于 PATH 中间的某个位置,也包括您的目录是 PATH 的第一个、最后一个或唯一的组件。
  • 对,Salters 先生,我必须搜索整个路径以寻找假设:C:\Application_Name\libs\dll_directory_1; C:\Application_Name\libs\dll_directory_2; C:\Application_Name\libs\dll_directory_3。我需要搜索我的Application_name 并返回所有上述路径(3 个或更多),然后删除它们..
  • 嗯,你应该把它们放在\Program files` or its localized variant (see FOLDERID_ProgramFiles`)。您应该将安装路径存储在注册表中,并在卸载时搜索这些确切路径。但是为什么要使用这么多 DLL 目录呢?
  • 好吧,我没有注册它们,只是将它们放在系统路径中。我想我必须使用vector 推回所有带有分隔符; 的路径,然后使用[]at() 运算符一一读取并查找或搜索它们。好吧,因为这个应用程序使用不同平台的不同模块,所以需要这么多 DLL

标签: c++ regex qt environment-variables


【解决方案1】:

您不需要正则表达式,您所需要做的就是找到一个不区分大小写的子字符串。既然你有Qt,就用indexOf

【讨论】:

    猜你喜欢
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2014-02-21
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多