不是的,就比如这样:DLL里的有这样两个函数:int add(int a, int b){....... sub(c,d);........}int sub(int c,int d){........}而在要导出的函数中都有addsub//sub即可以在DLL内部让add使用,又可以和add一起导出给.exe使用,我在VC中,做不了,如果要导出,内部就不能调用,我觉得应该有这个功能,但找不到
[此贴子已经被作者于2006-2-8 17:59:43编辑过]
好像不能吧,可能是因为类的缘故
哦,那只能另找办法了,谢谢版主热心帮助
经过多次验证,在VC中 ,如下程序在无论MFC DLL下,还是非MFC DLL下都是可行的,都可以导出正确的 add和sub函数_______dll.edf文件______EXPORTSaddsub_______dll.h文件_________extern int __declspec(dllexport)add(int,int);extern int __declspec(dllexport)sub(int,int);_______dll.cpp文件_______#include"dll.h"int add(int a,int b){ return sub(a,b)+b;}int sub(int a,int b){ return a-b;}问题在于如果把int 换成CString,虽然可以正确生成dll,导出函数但存在两方面问题 1.如果CString 对象参与了运算,在exe使用时就一定会发生错误报告;如:就连这个简单的函数也不行CString outself(CString szText){ return szText;}//其为DLL内要导出的函数2.如果CString 对象没有参与运算,当函数返回类型为CString 时,返回一定要大于等于两个字节如:CString out(){ return "w";}//在exe使用中就会发生错误报告CString out(){ return "ww";}//不会发生错误报告鄙人刚学,弄了一整天,百思不得解,是不是我在写DLL时别的代码没有完整所致,真不知道是什么回事?望高手指点