static My1 *(*pfn)()=0;
*(FARPROC*) &pfn=GetProcAddress(hdll,"CreateMy2");这2行代码这么多*迷糊了 我主要想知道为什么这么做 转来转去的 部分代码
/////部分dll代码 实现代码 我就不用贴了吗
//My(virtual).hclass My1
{
public:
virtual void add(int x,int y)=0;
virtual int getint()=0;
virtual void Delete()=0;};//My2.h#include"My(virtual).h"
class My2 :public My1
{
int Iindex;
public:
My2();
void add(int x,int y);
int getint();
void Delete();
};//CreatrMy2.h#include"My2.h"
extern "C" __declspec(dllexport) My1 *CreateMy2();#include"CreatrMy2.h"//CreatrMy2.CPP
My1 * CreateMy2()
{
return new My2;
}
////////////调用代码///////////// HMODULE hdll;
hdll=LoadLibrary("dll1.dll");
if(hdll==NULL)
{
AfxMessageBox("dll加载失败");
return;
}
///////这2行代码这么多*迷糊了谁能解释下谢谢///////////
static My1 *(*pfn)()=0; ////
*(FARPROC*) &pfn=GetProcAddress(hdll,"CreateMy2");////
/////////////////////////////////////////////////////
My1 *mm=pfn();
mm->add(11,11);
int a=mm->getint();
CString str;
str.Format("%d",a);
AfxMessageBox(str);
mm->Delete();
FreeLibrary(hdll);
*(FARPROC*) &pfn=GetProcAddress(hdll,"CreateMy2");这2行代码这么多*迷糊了 我主要想知道为什么这么做 转来转去的 部分代码
/////部分dll代码 实现代码 我就不用贴了吗
//My(virtual).hclass My1
{
public:
virtual void add(int x,int y)=0;
virtual int getint()=0;
virtual void Delete()=0;};//My2.h#include"My(virtual).h"
class My2 :public My1
{
int Iindex;
public:
My2();
void add(int x,int y);
int getint();
void Delete();
};//CreatrMy2.h#include"My2.h"
extern "C" __declspec(dllexport) My1 *CreateMy2();#include"CreatrMy2.h"//CreatrMy2.CPP
My1 * CreateMy2()
{
return new My2;
}
////////////调用代码///////////// HMODULE hdll;
hdll=LoadLibrary("dll1.dll");
if(hdll==NULL)
{
AfxMessageBox("dll加载失败");
return;
}
///////这2行代码这么多*迷糊了谁能解释下谢谢///////////
static My1 *(*pfn)()=0; ////
*(FARPROC*) &pfn=GetProcAddress(hdll,"CreateMy2");////
/////////////////////////////////////////////////////
My1 *mm=pfn();
mm->add(11,11);
int a=mm->getint();
CString str;
str.Format("%d",a);
AfxMessageBox(str);
mm->Delete();
FreeLibrary(hdll);
解决方案 »
- vc2008配置boost-Regex的问题~~
- edit控件 建立类似谷歌,百度的 提示下拉列表(散分)
- vc6无法安装
- win32 高手请进
- 如何在列表视中读入文档数据?
- pImageData指向位图的数据,如何在客户区中显示出来?
- SOS!!!怎样操作配置文件???
- 关于系统发声声音的默认设置,如男声和女声的区别?
- 能在一台有网卡的机器上学网络编程吗(只有一台PC)?
- 各位高手,哪里有NOTES API FOR C/C++可以下载????盼回答!!!
- 一个常见的问题!!!!!!!!!!!!!
- 断言错误winocc.cpp 345行 回调函数中调用NI公司的CWGRAPH control控件变量
My1 * 定义的函数返回值是返回一个指针
*(FARPROC*) &pfn = ... 这个比较简单
比如:
int a;
*(char *)&a = 1;