我知道我可以使用CallByname(Object,Methodname,…)来调用对象实例的方法或属性.
是否可以调用未绑定到对象的全局子/函数?
//Module1Public Sub DoSomethingEnd Sub//Module2Public Sub TriggerDoSomething On Error Resume Next CallByname2 "Module1","DoSomething",...End Sub
我知道,最好重构我的代码将DoSomething包装成一个类,但目前这是不可能的,因为它会以几个小时内无法修复的方式破坏我的同事的代码.
解决方法 CallByname实际上会更容易一个类 – 你不能只用一个重定向调用模块的类来包装模块吗?可以使用FunctionDe@R_301_5480@r按名称调用模块中的例程.这在Matt Curland的优秀着作Advanced Visual Basic 6中有所解释.
谷歌搜索可能会找到一些使用CallWindowProc的黑客攻击,但是Matt Curland说这很危险.这几乎是关于此问题的最后一句话:)
编辑:RS康利的答案不使用模块,使用具有GlobalMultiUse的实例属性的类,您将能够使用CallByname.如果您的代码在DLL而不是EXE中,这将有效. RS Conley建议,在任何情况下,使用DLL中几乎所有功能的最小EXE都会更灵活:这可能是真的.
总结以上是内存溢出为你收集整理的vb6 – 全局函数是否有CallByName等价物?全部内容,希望文章能够帮你解决vb6 – 全局函数是否有CallByName等价物?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)