2301_77634747 2024-03-19 10:46 采纳率: 88%
浏览 3
已结题

编写代码时使用相对路径引用了一些图片素材,现将exe与图片素材使用inno setup进行打包结果打包完成后打开是黑屏

使用vc进行编写代码,使用相对路径引用了一些图片素材,然后将图片素材文件夹和exe通过inno setup进行打包后,运行打包后的安装包却是黑屏,如何解决?

  • 写回答

2条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-19 10:47
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:图片素材文件夹和EXE程序通过Inno Setup打包后运行安装包黑屏。 可能原因:相对路径引用的图片素材路径不正确、图片素材未被正确打包进exe文件。 解决方案:
    1. 确认图片素材路径是否正确,可以使用绝对路径或相对路径。 案例:假设项目目录结构如下:
    /MyProject/
      /bin/
        MyApplication.exe
      /images/
        image1.png
        image2.png
      MySourceCode.cpp
    

    可以使用以下相对路径来引用图片素材:../images/image1.png../images/image2.png。该路径可以从MyApplication.exe所在的/bin/目录访问到图片素材。 2. 将图片素材正确打包进exe文件中。 可以使用资源文件(.rc)来将图片素材打包进exe中。在VC中创建.rc文件,然后将图片素材添加到资源文件中。

    IDB_PNG1             PNG             "images\\image1.png"
    IDB_PNG2             PNG             "images\\image2.png"
    

    在应用程序中可以通过以下方式使用资源中的图片:

    HMODULE hModule = GetModuleHandle(NULL);
    HRSRC hRes = FindResource(hModule, MAKEINTRESOURCE(IDB_PNG1), L"PNG");
    HGLOBAL hResource = LoadResource(hModule, hRes);
    DWORD imageSize = SizeofResource(hModule, hRes);
    LPVOID pResourceData = LockResource(hResource);
    // 使用pResourceData中的图片资源
    
    1. 在Inno Setup中正确地打包exe文件和素材文件。 可以在Inno Setup的[Files]部分来指定安装程序需要打包哪些文件,可以使用[Setup]部分的AppDir来指定安装程序要安装到哪个目录。
    [Setup]
    AppDir={app}
    [Files]
    Source: "MyApplication.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "images\*"; DestDir: "{app}\images"; Flags: recursesubdirs createallsubdirs
    

    需要注意的是,使用recursesubdirs标志来指定Inno Setup打包images文件夹时,会将所有子目录下的文件也进行打包。而createallsubdirs标志会自动创建素材所在的所有目录。 总的来说,可能黑屏的原因有很多,需要仔细排查错误,通过以上方法,可以解决许多常见的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 三菱FX系列PLC串口指令
  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3