DLL中有两个类ClassA ClassB
class ClassA
{
public:
FuncA();
};
class _declspec(dllexport) ClassB :public ClassA
{
public:
FuncB();
};
请问,外面应用程序使用ClassB生成对象时,能调用FuncA()吗?
我的程序好像编译没问题,但是Link的时候就报错了,不知道该如何处理,请指教
class ClassA
{
public:
FuncA();
};
class _declspec(dllexport) ClassB :public ClassA
{
public:
FuncB();
};
请问,外面应用程序使用ClassB生成对象时,能调用FuncA()吗?
我的程序好像编译没问题,但是Link的时候就报错了,不知道该如何处理,请指教
代码:
class ClassA
{
public:
void FuncA(){};
};
class _declspec(dllexport) ClassB : public ClassA
{
public:
void FuncB(){};
};
结果:
E:\test1\Debug>dumpbin -exports test1.dll
Microsoft (R) COFF Binary File Dumper Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
Dump of file test1.dllFile Type: DLL Section contains the following exports for test1.dll 0 characteristics
467354C9 time date stamp Sat Jun 16 11:11:05 2007
0.00 version
1 ordinal base
2 number of functions
2 number of names ordinal hint RVA name 1 0 00001005 ??4ClassB@@QAEAAV0@ABV0@@Z
2 1 0000100A ?FuncB@ClassB@@QAEXXZ Summary 7000 .data
1000 .idata
3000 .rdata
2000 .reloc
2A000 .textE:\test1\Debug>
2 1 0000100A ?FuncB@ClassB@@QAEXXZ <==FuncB确实没有FuncA啊????
classA一样导出才可以的
你试下加上
class B{
public:
using ClassA::FuncA;
}如果还是不行的就只有把ClassA一起导出,或者在ClassB中另外封装一个方法来调用FuncA