关于软件结构的有关问题,小弟我也不是很清楚这叫什么有关问题。按照自己理解叫函数重写
关于软件结构的问题,我也不是很清楚这叫什么问题。按照自己理解叫函数重写?
写了一个DLL。DLL中有这样一段代码。
while(1)
{
fly();
}
fly()
{
....;
....;
}
在另外一个cpp文件中 我想在FLY最后 加一些代码。我应该如何写呢。
说的可能不是很清楚,可以这样理解,
VOID A();
while(1)
{
fly();
}
fly()
{
....;
....;
A();
}
VOID A()
{
}
需要在另外的Cpp文件中写A()的代码
EXTERN VOID A();
VOID A()
{
.....;
......;
}
应发如何实现呢?感觉没有太好的思路。
------解决方案--------------------
一般有两种方法来实现,虚函数或函数指针。
函数指针:
//dll中
//使用DLL的CPP文件中
------解决方案--------------------
直接函数调用,函数指针等
------解决方案--------------------
lz看起来对C++的基本概念还很陌生,还是好好读读基础的书吧,
写了一个DLL。DLL中有这样一段代码。
while(1)
{
fly();
}
fly()
{
....;
....;
}
在另外一个cpp文件中 我想在FLY最后 加一些代码。我应该如何写呢。
说的可能不是很清楚,可以这样理解,
VOID A();
while(1)
{
fly();
}
fly()
{
....;
....;
A();
}
VOID A()
{
}
需要在另外的Cpp文件中写A()的代码
EXTERN VOID A();
VOID A()
{
.....;
......;
}
应发如何实现呢?感觉没有太好的思路。
MFC 重写
------解决方案--------------------
一般有两种方法来实现,虚函数或函数指针。
函数指针:
//dll中
void A()
{
}
void (*Fun)() = A;
//导出一个SetFunc函数用于设置Fun函数指针的新指向
__declspec(dllexport) void SetFunc(void (*NewFun)())
{
Fun = NewFun;
}
void fly()
{
....;
....;
Fun();
}
//使用DLL的CPP文件中
void A()
{
cout<<"新代码"<<endl;
}
//从DLL中导入的函数
__declspec(dllimport) void SetFunc(void (*NewFun)());
int main()
{
SetFunc(A);
}
------解决方案--------------------
直接函数调用,函数指针等
------解决方案--------------------
lz看起来对C++的基本概念还很陌生,还是好好读读基础的书吧,