88250 发表于 2006-9-19 00:29:51

友元函数与DLL或Lib的问题

从Blog上传点东西过来,:10:


写那个多项式计算器的实现今天已经写得差不多了。。。。

既然老师说可以2-3个人为一组去写,我就和我老婆一组咯,她主要是写一下User code部分,我写的就是Class implementaion。这样一来,也可以提早适应一下以后的软件开发过程吧 :-P

要做就做得专业一点,所以我想把我的实现代码都封装在一个Lib里,当然,也可以是DLL。(不过考虑到老婆对Win32 API的了解程度,还是提供Lib给老婆用,这样简单一点。因为提供DLL给她用的话她要在她在代码里用一些API,还有一些函数指针,这个对于她来说可能是难的点,呵呵)

吃过晚饭回来,开始编译我的PolyDef.Lib了。因为以前有过一些简单的C\C++编写库文件并调用的经验,所以本以为会很简单,没想到啊。。。。

在对整个类进行了__declspec(dllexport)之后,编译的时老是提示:

无法解析的外部符号 "class polynomial __cdecl operator+(class polynomial const &,class polynomial const &)"

明明已经对整个class进行了export。。。。郁闷5分钟,突然想起了我的overloading operator +是class polynomial 的friend function,面友元函数其实相当于一个“类外的局部函数”!郁闷死我了。。。。

后来在class里的各个friend functions的前面加上了__declspec(dllexport),以及实现部分加上__declspec(dllexport),Ok!

呵呵。。。。后来又写了个makefile,在VS 2005的nmake之下,那个爽啊!
页: [1]
查看完整版本: 友元函数与DLL或Lib的问题