|
1Qter豆
我希望能通过DLL的方式,封装多个界面,假设这个dll叫做A,在a.h中,包含各个界面对应的.h文件,同时在a.h中,增加各个界面的指针,以及对应各个界面的实例化方法(返回地址给各自的指针)。个人认为通过对应的指针,就能访问并操作对应的界面,且能由指针来调用各个界面内的public方法,这样就能通过各个指针来操作界面内的数据,相当于分级操作。然而,编译时提示:-1: error: undefined reference to (对应的方法)。 应该是a.h只对外暴露了a.h的方法,对于各个指针指向的别的界面的方法不能访问到。如果要能通过外部操作不同的界面,只可以在a.h中把各个界面的方法全部写上(就不能分级写在不同的界面中了)。因此,想请教,应该如何做才能访问到各个不同界面的指针所对应的函数呢?
简单举例如下:
#ifndef A_H#define A_H
#include "a.h"#include "form1.h"//界面1
#include "form2.h"//界面2
#include "form3.h"//界面3
#include "form4.h"//界面4
class ASHARED_EXPORT A{public: a(); Form1* initForm1();
Form2* initForm2();
Form3* initForm3();
Form4* initForm4();
//各个form各自有自己的方法,通过不同的initForm()来返回地址,
//并交给各自的指针,但是在别的dll或者主界面调用时不能通过编译
Form1* p_form1=nullptr;
Form2* p_form2=nullptr;
Form3* p_form3=nullptr;
Form4* p_form4=nullptr;
};
|
|