Memory 将新成员函数引入可重用头的外部类会导致加载使用它的组件失败

Memory 将新成员函数引入可重用头的外部类会导致加载使用它的组件失败,memory,visual-c++,dll,inner-classes,outer-classes,Memory,Visual C++,Dll,Inner Classes,Outer Classes,我有一个可重用的头,它被多个组件使用。我向外部类引入了一个成员函数和一个成员变量,并从一个组件调用它。该函数的实现是在可重用头的.cpp中完成的。它已成功构建,但在执行工作流和打开组件时,无法加载并引发错误。使用可重用标头的其他组件也无法加载 要解决它。。。在头文件中,我引入了一个内部类,并为内部类创建了成员变量和成员函数。我创建了内部类的对象作为外部类的成员。现在一切正常。使用收割台的所有组件均已正确加载 有人能告诉我们,当外部类引入成员变量和函数时,会出现什么问题,以及如何通过使用内部类来解

我有一个可重用的头,它被多个组件使用。我向外部类引入了一个成员函数和一个成员变量,并从一个组件调用它。该函数的实现是在可重用头的.cpp中完成的。它已成功构建,但在执行工作流和打开组件时,无法加载并引发错误。使用可重用标头的其他组件也无法加载

要解决它。。。在头文件中,我引入了一个内部类,并为内部类创建了成员变量和成员函数。我创建了内部类的对象作为外部类的成员。现在一切正常。使用收割台的所有组件均已正确加载

有人能告诉我们,当外部类引入成员变量和函数时,会出现什么问题,以及如何通过使用内部类来解决这个问题吗? 我只知道,通过将成员变量引入外部类,可能会增加dll的大小,这可能不会被正确使用。但是,它是如何通过使用内部类得到纠正的呢。 内存分配是在这里起作用,还是由于其他原因

下面是可重用标头中的示例代码,其中(1)不起作用,(2)起作用:

(一)

注意:Func1()是从多个组件调用的,而不是从实现它的组件调用的

(二)


一个可能的区别是:在工作示例中,
Func1
是在标题中内联定义的。在非工作示例中,未定义它。你确定你已经为它提供了定义,并用新代码重建了DLL吗?是的,
Func1
的实现已经在cpp文件中完成,并且重新生成了DLL。它引发了什么错误?内存冲突?组件之间如何共享?可重用组件放置在dll和共享accross exe或同一项目中?错误只是表示无法加载组件。可重用头是一个包含文件。此包含由同一exe的各种DLL使用。
class AFX_EXT_CLASS Class1
{
public:
   Class1()   {var = 8;};
   void Func1(int local);
   int var;
};
class AFX_EXT_CLASS Class1
{
public:
    Class1();

    class InnerClass
    {
    public:
        InnerClass(): var(8) {}

        void Func1(int local, Class1::InnerClass* objInnerClass)
        {
            objInnerClass->var = local;
        }

        int var;    
    };

public:
    Class1::InnerClass objMainInnerClass;
//This object is used to call Func1() from the components using the reusable header.
};