##################dll.h##################
#pragma once
typedef void (*CALLBACK)(int );
typedef struct
handleCB
{
CALLBACK
t_fun;
}stCallBack;
static stCallBack sHandlerCallBack;
extern void
RegisterPrint(CALLBACK fun);
extern void StartPrint(int interval);
##################dll.cpp##################
#include "dll.h"
void RegisterPrint(CALLBACK fun)
{
sHandlerCallBack.t_fun = fun;
}
void StartPrint(int
interval)
{
for (int i=0; i<interval;
i++) (*sHandlerCallBack.t_fun)(i);
}
##################app.cpp##################
#include <stdio.h>
#include "dll.h"
void PrintHello(int i)
{
printf("[PrintHello]:
Hello-%d\n", i);
}
int main(int argc, char **argv)
{
RegisterPrint(&PrintHello);
StartPrint(5);
return 0;
}
时间: 2024-08-30 17:31:54