C中可不可以实现这一功能:传递一个字符串,调用这个字符串为名字的函数,该怎么处理
C中可不可以实现这一功能:传递一个字符串,调用这个字符串为名字的函数
比如
int tst()
{
//
}
int invoker(char *name)
{
//call name
// 如果name == "tst " 就会调用tst()函数
}
------解决方案--------------------
system();
------解决方案--------------------
不能。
不过yaorugang给的确实是实际这种问题的解决方式。
试想,你要调用的函数也是有限的,已知的,所以这样做也没什么实现不了的。
------解决方案--------------------
你要模拟dll的功能。
那么你可以把所有的函数都 extern "C " __declspec(dllexport)后,
然后跟dll一样加载 。
fn = GetProcAddress(GetModuleHandle(0), "tst ");
------解决方案--------------------
C++/Clr可以用反射机制实现
比如
int tst()
{
//
}
int invoker(char *name)
{
//call name
// 如果name == "tst " 就会调用tst()函数
}
------解决方案--------------------
system();
------解决方案--------------------
不能。
不过yaorugang给的确实是实际这种问题的解决方式。
试想,你要调用的函数也是有限的,已知的,所以这样做也没什么实现不了的。
------解决方案--------------------
你要模拟dll的功能。
那么你可以把所有的函数都 extern "C " __declspec(dllexport)后,
然后跟dll一样加载 。
fn = GetProcAddress(GetModuleHandle(0), "tst ");
------解决方案--------------------
C++/Clr可以用反射机制实现