社区
C++ Builder
帖子详情
字符串映射到函数名.
tree2000
2006-09-18 04:17:45
以前在CSDN上看了一篇文章说,可以将字符串MAP成函数名,然后已知字符串,调用到对应的函数.
不知道哪位还记得.
或者有更好的方法.
...全文
421
14
打赏
收藏
字符串映射到函数名.
以前在CSDN上看了一篇文章说,可以将字符串MAP成函数名,然后已知字符串,调用到对应的函数. 不知道哪位还记得. 或者有更好的方法.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
柯本
2006-09-19
打赏
举报
回复
谢谢老妖夸奖!
ccrun.com
2006-09-19
打赏
举报
回复
keiy最近很努力啊。
dronly
2006-09-19
打赏
举报
回复
学习了~~~
柯本
2006-09-18
打赏
举报
回复
呵呵,比老妖晚了一步
柯本
2006-09-18
打赏
举报
回复
另外,如果是继承TObject类中的 __published函数,可用MethodAddress得到它的地址,然后调用
如:
lass A:public TObject
{
__published:
void test() {ShowMessage("ok");}
};
void __fastcall TForm1::Button1Click(TObject *Sender)
{
A *p=new A;
void ( *x)(); //定义函数指针
A::test; //必须,否则,BCB不会将函加入程序.此行不会产生任何代码,只是告诉link,程序要用A::test函数
x=(void ( *)()) p->MethodAddress("test"); //找到test函数地址,相当于java的反射
if (x!=NULL)
x(); //调用p->test();
}
ccrun.com
2006-09-18
打赏
举报
回复
TObject有个MethodAddress的方法,结合TMethod类就可以实现了。
Google搜索MethodAddress和TMethod
wzd268
2006-09-18
打赏
举报
回复
java里面是有的
C++不了解
jiangshx
2006-09-18
打赏
举报
回复
顶!
板凳,听课!
LuoGD
2006-09-18
打赏
举报
回复
一个变通的方法,用String 与函数指针一一对应起来:
typedef map<AnsiString, FuncPtr*> FuncMap;
FuncMap funcs;
funcs["function1"] = function1;
funcs["function2"] = function2;
AnsiString funcName = "function1";
funcs[funcName](param1,param2);
netliuming
2006-09-18
打赏
举报
回复
c++可以吗?倒很想知道
铖邑
2006-09-18
打赏
举报
回复
LoadLibrary
GetProcAddress
juqiang
2006-09-18
打赏
举报
回复
loadlirbrary不可以吗?然后用函数指针来调用
lurel
2006-09-18
打赏
举报
回复
应该可以吧,但涉及到地址问题,是不是有些麻烦呢?
Maconel
2006-09-18
打赏
举报
回复
java,c#之类的还可能,
c++里,只能自己维护一个对应表了。
java用JNA调用dll实例,包含各种参数调用
实例中演示了各种参数形式的DLL
函数
调用,如:基本数据类型、基本数据类型的指针和引用、结构体、结构体的指针和引用、
函数
指针和回调
函数
、
字符串
指针、输入数组、输出数组等,非常实用。
【C++】将
字符串
转换为相应的
函数
进行调用
通过
函数
名
字符串
调用相应的
函数
循环生成其
函数
名
对应的
字符串
(spintf
函数
) 利用
函数
指针得到相应
字符串
对应的
函数
#include <iostream> #include <string.h> using namespace std; typedef int (*funcP)(int k); //定义类型,funcP即为指向
函数
的指针 ...
js将
字符串
作为
函数
名
调用
函数
需求:获取JSON对象的
函数
名
称,并执行该
函数
。 解决:用eval
函数
,
字符串
转换为命令行执行都可以通过eval
函数
。 计算 JavaScript
字符串
,并把它作为脚本代码来执行。 function loadForm(itemCode){ for(var i=0;i<ITEMCODEARR.length;i++){ if(itemCode === ITEMCODEARR[i].code){ if(ITEMCODEARR...
通过
函数
名
称
字符串
发起调用/
函数
名
反射
python 在 python 当中,一切都是对象。
函数
也是第一等公民。 如果要使用
函数
名
称
字符串
发起调用,目标在于通过
字符串
找到
函数
对象。
函数
```python def func(a): print("global function func", a) ``` 显示的从全局命
名
空间中查找 python 当中,全局的命
名
空间可使用内置
函数
`global`获取。 ```python globals()["func"](3) ``` 使用内置的解释器 脚本语言都是解释执行,而且一般...
lua
函数
转
字符串
传递,然后转换成
函数
再执行
functionTestStrFunc() Log.Log("--TestStrFunc") end --把
函数
序列化成
字符串
来保存 fstr=string.dump(TestStrFunc) Log.Log('fstrtype='..tostring(type(fstr))) Log.Log('fstr='..tostring(fstr)) --把
字符串
反序列化成
函数
...
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章