itisue 2023-01-09 15:27 采纳率: 62.5%
浏览 67
已结题

为什么会发生应用程序无法启动的情况?

我把一个exe程序改写成了dll(我在VS中将输出改成了dll,并且把主函数改成了借口也导出了),然后用一个exe去调用dll为啥会报错?

img


就是说,如果不屏蔽的话,会变成导入,这是为什么?

img


这是实现。
错误如下

img

  • 写回答

7条回答 默认 最新

  • Marco119 2023-01-10 00:12
    关注

    可能是因为你在将 exe 改写成 dll 的过程中,没有正确处理好 exe 中的入口函数和 dll 中的导出函数。

    在 exe 中,入口函数一般是 main 或者 wmain,而在 dll 中,你需要把主函数改写成一个导出函数,并使用 __declspec(dllexport) 来导出。

    例如:

    // exe 中的入口函数
    int main(int argc, char* argv[])
    {
    // 其他代码
    return 0;
    }

    // dll 中的导出函数
    __declspec(dllexport) int main(int argc, char* argv[])
    {
    // 其他代码
    return 0;
    }

    如果你的 exe 中有多个入口函数,则需要把所有入口函数都改写成导出函数。

    另外,你还需要注意 dll 的命名规范,比如说 dll 的文件名、函数名和符号名等。

    如果你还是遇到了问题,可以尝试使用 Dependency Walker 工具来检查 dll 和 exe 的依赖关系,帮助你找到问题的原因。

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

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月9日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境