gpt4 book ai didi

c++ - MFC .exe 和 .dll 对同一代码产生不同的结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:31:54 25 4
gpt4 key购买 nike

<分区>

我的工作遇到了以下问题:有两个项目:MFC .dll 和 MFC .exe 基于相同的源代码(当然除了入口点),我观察到它们在处理相同数据时产生的不同结果。我检查了两者的所有项目设置,发现所有项目属性都相似(至少我认为重要的那些)。运行几次测试后,我了解到以下内容:

  1. MFC .exe 在“调试”和“发布”模式下对同一数据集产生相同的结果
  2. MFC .dll 在“调试”和“发布”模式的同一数据集上产生不同结果
  3. .dll 的“发布”结果与 .dll 的“调试”结果不匹配,也不与 .exe 的任何“调试”或“发布”结果匹配。

我想 .exe 可以正常工作只是因为它为两种编译器配置提供了相同的结果,但我无法确定这一点。那么,如何解决 .dll 'Release' 配置的问题呢?我的意思是,我怎么能强制它与其他人重合?如何解释这种行为?

编辑

我想问题的发生是因为我使用了在 Delphi 上编写的主机应用程序。我什至创建了新的 C++ exe 来测试这个建议,发现它工作正常,没有任何错误。唯一的区别是创建要在 Delphi 应用程序中使用的 DLL 我将其标记为 extern "C",但对于 C++ 应用程序我只写了 extern。可以找到有关此主题的另一个讨论的详细信息 here .但是,如果尝试使用仅带有 extern 标记而没有 "C" 的 DLL,我的 Delphi 应用程序会报告函数入口点无法位于此处...这是一个现在对我来说是个大问题,为什么会这样……有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com