将许多C调用函数包装到单个实现中

时间:2011-09-20 11:43:51

标签: c++ c function-signature

``我要求函数调用具有不同的名称,但所有这些名称在执行时应引用相同的定义。 例如, 我有一个像

这样的函数调用
UINT8 vsignal;UINT8 vsignal1;void Read_Message1_Signal1(&vSignal);void Read_Message2_Signal2(&vSignal1);

但这应该与

相关联
void Read_Message_Signal(UINT8 *signal){}

已经实现并编译为dll,应该链接到不同的调用,因为这些调用可能会因输入而异。

任何人都可以帮助我如何达到这个要求吗?

3 个答案:

答案 0 :(得分:1)

void Read_Message1_Signal1(&vSignal)
{
    Read_Message_Signal(&vSignal);  // or whatever
}

并重复其他函数名称,可能使用自定义代码生成器。

答案 1 :(得分:1)

有什么理由你不能只写自己的包装器吗?

void Read_Message1_Signal1(&vSignal)
{
    Read_Message_Signal(vSignal);
}

void Read_Message2_Signal2(&vSignal)
{
    Read_Message_Signal(vSignal);
}

如果有很多宏,你可以用宏自动生成它们。

答案 2 :(得分:1)

您可以使用预处理器:

#define Read_Message1_Signal1(x) Read_Message_Signal(x)
#define Read_Message2_Signal2(x) Read_Message_Signal(x)

或者重新考虑你的API,因为这对我来说似乎很奇怪......