代码之家  ›  专栏  ›  技术社区  ›  Prabhu

EXE和DLL依赖项-何时重新编译EXE?

  •  0
  • Prabhu  · 技术社区  · 14 年前

    我在exe和dll中有以下类定义。

    // A.exe: 
    Class A { void fun() { B* b = new B(); b.funx(); }
    
    // B.dll:
    Class B { void funx (void) { C* y = new C(); y.funy(); }
    Class C { void funy() { } }
    

    2 回复  |  直到 14 年前
        1
  •  2
  •   Rudi    14 年前

    每次 公众的 b.dll的接口更改(不仅是大小,还包括重新排序成员时的私有/公共更改[这也会影响成员排序,而不会从源代码中可见],…)。如果 C 是公共接口的一部分,则每次whhn时也需要重新编译A.exe 变化。只有在以下情况下才不需要重新编译a.exe C类 C类 可以间接引用,例如 B::funx

    当你把 C类 class C; ,仍然可以编译A.exe,您不需要关心 C类 . 但是我建议每次都编译一个.exe,因为在将来的某个时候,代码会发生变化,所以不满足这个条件,就很难调试错误。

        2
  •  2
  •   Koteswara sarma    14 年前

    如果改变B类的大小,应该重新编译

    如果B的大小不是通过改变C类的大小而改变的,则不需要重新编译A。

    --干杯