【问题标题】:How to know whether a particular preprocessor directive is defined in a third party DLL or not?如何知道特定的预处理器指令是否在第三方 DLL 中定义?
【发布时间】:2020-04-08 15:41:35
【问题描述】:

我正在使用来自 DLL 的定义。 DLL 中有多个定义,将根据条件预处理器宏声明选择一个。如何知道DLL中使用了哪个预处理器声明?

【问题讨论】:

  • 您所说的“从 DLL 定义”是什么意思?.. 这很模糊。如果我们谈论 DLL 导出.. 这很容易.. 如果我们谈论 #define X 10 与 #define X 11.. 它变得更加困难。请澄清。

标签: visual-studio c++ dll


【解决方案1】:

预处理器指令和宏仅在编译时存在。除了可能在调试信息中,已编译的二进制文件(例如 DLL)通常不包含有关预处理器指令或宏的任何信息。

【讨论】:

    【解决方案2】:

    感谢您的回复。 如果正在使用的DLL的源文件如下:

    文件1

    #ifdef x 结构 A { 诠释一个; 浮动 b; };

    其他

       struct A { 
               int a; 
       };
    

    endif

    在用户代码中,结构 A 正在被实例化。有什么方法可以让我们知道正在使用 DLL 中的哪个结构定义? DLL 提供程序没有关于如何构建 DLL 的源代码和其他信息。

    【讨论】:

    • 请不要将您的回复作为答案发布。相反,您可以发表评论编辑问题。
    【解决方案3】:

    不确定问题陈述,但如果您想要反编译器,则几乎没有 ILSpy、DotPeek 等选择。

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多