关于函数指针的写法。解决思路
关于函数指针的写法。
我有一个主程序和一个dll程序,我想在主程序中,将自已的一个函数指针传给dll,然后dll回调这个主程序的函数,但不知道写法,各位帮帮忙。
主程序:
[/code]
test.dll:
各位帮帮忙,小弟不太懂c++的这种语法,原理我知道,但就是写不出来。如果主程序中不是采用类的话,我还能写写。如果是类的一个函数指针,就不会写了
------解决方案--------------------
DLL:
typedef void (*method)(int);
void test(method *fun)
{
int i = 10;
(*fun)(i);
}
主程序:
typedef void (*test)(method *fun);
{
HMODULE h= LoadLibrary("test.dll");
//接下来这里应该怎么写才能将methodB这个方法传给test.dll程序中的test方法呢?
//需要再声明一个类函数指针做为成员变量吗?
test *fun = GetProcAddress(h, "test");
if (fun)
{
fun(methodB); // method必须为全局或者静态东西成员函数
}
}
我有一个主程序和一个dll程序,我想在主程序中,将自已的一个函数指针传给dll,然后dll回调这个主程序的函数,但不知道写法,各位帮帮忙。
主程序:
[/code]
class A{
public:
void methodA()
{
HMODULE h= LoadLibrary("test.dll");
//接下来这里应该怎么写才能将methodB这个方法传给test.dll程序中的test方法呢?
//需要再声明一个类函数指针做为成员变量吗?
}
void methodB(int x)
{
}
}
test.dll:
....
void test(//这里应该怎么接收主程序的那个函数指什啊?这里参数怎么写呢?)
{
}
.....
各位帮帮忙,小弟不太懂c++的这种语法,原理我知道,但就是写不出来。如果主程序中不是采用类的话,我还能写写。如果是类的一个函数指针,就不会写了
C++
指针
类
------解决方案--------------------
DLL:
typedef void (*method)(int);
void test(method *fun)
{
int i = 10;
(*fun)(i);
}
主程序:
typedef void (*test)(method *fun);
{
HMODULE h= LoadLibrary("test.dll");
//接下来这里应该怎么写才能将methodB这个方法传给test.dll程序中的test方法呢?
//需要再声明一个类函数指针做为成员变量吗?
test *fun = GetProcAddress(h, "test");
if (fun)
{
fun(methodB); // method必须为全局或者静态东西成员函数
}
}