本问题有源代码,请先编译OBjectDLL工程,然后找到目录下的Bin,将ObjectDLL.dll拷贝到3D\Debug和Material\Debug下工程在VC6.0下编译,请打开 3D\3D.dsw我做了一个DLL程序A,另外两个程序B和C使用A.lib 使用其中的 A.dll但是在生成 B 的过程 有下面这段话,可是我并没有要求B生成 B.lib 啊?
他为什么会这样呢?
Creating library Debug/B.lib and object Debug/B.exp
另外,C能够没有毛病的使用A.lib 和 A.dll ,但是,B却不行了,B中在使用一个类的方式的时候提示
error LNK2001: unresolved external symbol "public: void __thiscall Element::DrawSelf(unsigned int)" A 中也使用到了 Element(基类)的这个方法(在子类中没有重载),能够用,B也要使用却不行啊?大家要是有兴趣可以看看我的代码上面的 A B C 实际项目中的名称
A ==  OBjectDLL
B ==  3D
C ==  Materialerror LNK2001: unresolved external symbol "public: void __thiscall Element::DrawSelf(unsigned int)" 
这个问题出现在 Material 工程下的COpenGL的RenderGLScene中,我声明了一个 Sample(Element的子类) s ,在一个for循环中调用 s.DrawSelf() 就出现了这个错误
但是在 3D 这个工程中 Scence这个类(OBjectDLL包括) 这其中夜钓用了 Element.DrawSelf() 却能正常运行,这时为什么呢?BTW:: 我没有将 Element 导出,是不是这个问题呢?在同样没有到处的情况下,3D能用 Material却不能用
哎。。