V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
coderluan
V2EX  ›  问与答

有什么简单的办法可以把一个 exe 和一堆烂七八糟的资源文件封装成一个独立可用的 exe 吗?

  •  
  •   coderluan · Apr 22, 2019 · 3098 views
    This topic created in 2562 days ago, the information mentioned may be changed or developed.

    目前的处理办法是把乱七八糟的文件全读到字符串里,这样便只生成一个 exe,但是感觉不是很方便呢。

    21 replies    2019-04-23 13:36:38 +08:00
    ysc3839
        1
    ysc3839  
       Apr 22, 2019 via Android   ❤️ 2
    跨平台的办法是把文件数据作为常量编译进去。或者使用 Windows only 的 exe Resources。
    geelaw
        2
    geelaw  
       Apr 22, 2019
    这个操作叫做安装 /自解压。可以用 iexpress.exe 实现。
    yukiww233
        3
    yukiww233  
       Apr 22, 2019   ❤️ 1
    Thinstall
    shihira
        4
    shihira  
       Apr 22, 2019 via Android
    并不,其实写到 data 段里是最方便的了,还能利用系统的换入机制不用自己读
    coderluan
        5
    coderluan  
    OP
       Apr 22, 2019
    APPEND:我想要一个独立的执行文件从而隐藏那些烂七八糟的文件,不是要把他们打包了再解压。 @geelaw

    @ysc3839 常量就是现在的办法. RC 文件我得看看,不确定类型能不能都支持。

    @yukiww233 就是这种,我去看看。
    coderluan
        6
    coderluan  
    OP
       Apr 22, 2019
    @shihira 不方便是文件太乱七八糟导致的,不是读字符串不方便........
    lshero
        7
    lshero  
       Apr 22, 2019
    压缩后用自解压后运行 exe 哪里不好呢?
    fstab
        8
    fstab  
       Apr 22, 2019 via Android
    @coderluan 自动解压到临时文件夹里面,关闭自动删除,这个用户也看不到呀。
    guyujiezi
        9
    guyujiezi  
       Apr 22, 2019
    winrar 自解压 exe
    shihira
        10
    shihira  
       Apr 22, 2019 via Android
    @flyz 会增加启动时间,性能不好
    @coderluan 组织文件的方法有很多啊,比如说生成一个文件名 - 指针+长度的 map,继续做下去就是一个 vfs 了
    geelaw
        11
    geelaw  
       Apr 22, 2019 via iPhone
    @coderluan #5 你没有看出来的是,即使你最终实现了用户看不到那些乱七八糟的文件,结果仍然是在某个地方虚拟地实现了这个事情(如果你 blackbox 实现这件事情,而不是把所有的代码都重构一遍),默认假设就是用户看不见临时文件夹里的东西。所以请用 #7 #8。
    coderluan
        12
    coderluan  
    OP
       Apr 22, 2019
    @lshero 简单来说,我们不想让用户看见那些乱七八糟的东西。
    @flyz 文件太大,每次解压重新解压要么了。
    misaka19000
        13
    misaka19000  
       Apr 22, 2019
    用工具把数据直接 dump 到 rodata 区呢,之后再通过地址直接读

    之前在《程序员的自我修养》里面看过这种做法
    coderluan
        14
    coderluan  
    OP
       Apr 22, 2019
    @geelaw 我们默认假设是,用户会翻看目录(包括临时文件夹),但是不会拆你的 exe,这就是关键问题。PS:这个默认我说了不算。
    coderluan
        15
    coderluan  
    OP
       Apr 22, 2019
    @misaka19000 这个和现在存字符串的方式没啥本质区别。
    pckillers
        16
    pckillers  
       Apr 22, 2019
    生成 winrar 自解压包并设置自动解压路径和自动执行程序。 然后再改个 exe 图标。 完工
    2010
        17
    2010  
       Apr 22, 2019
    建立一个主程序(导航,用户自由选择程序 我做过类似的集中制管理
    Nasei
        18
    Nasei  
       Apr 22, 2019   ❤️ 1
    Resources.resx 这种应该可以吧? .net core 也能用
    silentstorm
        19
    silentstorm  
       Apr 22, 2019 via Android
    VS 就可以吧,只不过生成的文件会很大
    ChenXuting
        20
    ChenXuting  
       Apr 23, 2019 via iPhone
    火凤安装包制作大师?
    dyxLike
        21
    dyxLike  
       Apr 23, 2019
    网上很多 单文件封装工具 不知道能不能满足需求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1114 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    ♥ Do have faith in what you're doing.