如何动态申明类型?

hxyman 2008-10-08 10:01:04
我自己写了一个脚本解释的程序,
现在想让脚本支持加载dll功能。

下面这种形式是dll里面的一个函数
typedef BSTR (*DLLFUNCTION)(char*);
还有可能是其它的,比如:
typedef BSTR (*DLLFUNCTION)(char*, char*);
typedef BSTR (*DLLFUNCTION)(char*, char*, int*);
... ...

调用的时候是这样的:
(DLLFUNCTION)::GetProcAddress(hInstance,"somefunction")(pBuff);

但是我解释脚本中的内容是字符串,如何跟据字符串动态地申明 DLLFUNCTION 这种函数类型呢?
比如我的脚本有可能是这样的:
load_dll xxx.dll
call_dll somefunction("aa","bb")

其实我想实现的就是我的脚本解释能支持第三方的dll调用。
不知道我说清楚了没有,请指教:)
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxyman 2008-10-08
  • 打赏
  • 举报
回复
谢谢二位,结帖了。
zhoujianhei 2008-10-08
  • 打赏
  • 举报
回复
脚本中不是很清楚,不过在VC中可以使用自适应函数指针,像这样
http://blog.csdn.net/zhoujianhei/archive/2008/09/13/2921938.aspx

vcPlayer 2008-10-08
  • 打赏
  • 举报
回复
编译型语言的“类型”在编译的时候必须确定。如果在运行时来确定,那就是“解释”型语言了。

如果非得在编译型语言中实现解释语言的功能,可能采取的途径:
1、在程序设计时尽量枚举这些类型,然后用判断语句实现调用(很不现实);
2、用内联汇编强制介入(还有可能实现)。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧