Quote:
引用第13楼coolboy于2007-06-15 22:39发表的:
首先你要知道什么叫输出符号名,它就是GetProcAdress()的第二个参数,你可以用dumpbin -exports yourfile 查看你的dll的输出符号名。
比如我随便写的一个dll查看结果如下:
1 0 00011410 ??0Cdll@@QAE@XZ
.......
你没有回答我的问题,我的问题是如下:
dll模块中:
class example.................................................................//定义一个类
{
//something and some methods
}
example* GetExample()
{example* pExample=new example; ..........................//new一个类实例;
}
dll.def中
LIBRARY
EXPORTS
GetExample
主程序中:
#include some files //没有将dll中定义类的头文件包进去.
int main()
{
typedef void(*pFunc)(); //若为Example则不能识别,只能选void
加载dll;
获取函数地址;
//以上成功了;
调用指向GetExample()的函数指针,获取了一个指向example 类的指针(但实际是void型),
以上也成功了;;
接下来问题出现了;
我不能通过这个返回的指针访问example的成员函数,或成员变量;
}
就是上面的问题,怎么办呀?
我的前提是#include中不包含example类的头文件,应为如果包含,我就不用费这么大劲了,就不用dll了.
