0

私は、多くのクラスを持つ dll ライブラリ 1 を持っています。これらのクラスは dll ライブラリ 2 で使用されています。ライブラリ 2 のコードにアクセスできません。再コンパイルできません。ライブラリ 1 のクラスに、影響を与えずにいくつかの機能を追加したいと考えています。図書館の仕事 2、私は問題に直面しました

私が何をした??(1) ライブラリ 1 のクラスに別のコンストラクターを追加し、ライブラリ 2 は正常に動作し続けます。(2) ライブラリ 1 のクラスに public bool 変数を追加すると、ライブラリ 2 が例外をスローします - アクセス違反の読み取り - !! 私は何も削除しませんでした。新しい変数を追加しただけで、他のライブラリが機能しなくなり、アクセス違反の読み取り例外がスローされました。

これは正常ですか、それともこれに対する解決策は何ですか

4

1 に答える 1

0

クラス宣言の最後に新しい変数を配置することで問題を解決しました

class A // before editing
{
public:
    int a;
    bool b;
};

//i was doing thia
class A // when problem was caused
{
public:
    bool q;//my new item
    int a;
    bool b;
};

//what solved the problem

class A // after the problem  was solved
{
public:
    int a;
    bool b;
    bool q;//my new item
};

しかし、私はそれについて本当の説明がありません。

于 2013-04-15T10:10:27.650 に答える