如题,在delphi中使用ObjectInvoke反射。现可以通过LoadLibrary和GetProcAddress来得到函数的入口,怎么通过反射来实现该函数?

解决方案 »

  1.   

    http://chinawrc.blog.enorth.com.cn/article/113467.shtml
      

  2.   

    Delphi制作DLL小结
    http://www.cnblogs.com/y232995558/archive/2009/05/07/1451210.html
      

  3.   

    多谢关注,但我需要的用反射的方法来实现,各位再帮我想想,请用ObjectInvoke
      

  4.   

    楼主要明白,objectinvoke的参数是对应一个对象,而不是一个DLL
      

  5.   

    那有没有类似这种反射,RunDll(dll,funcname,[param index],[param val]),这样来实现对dll中函数的调用?
      

  6.   

    暂时好像没有好的方法,DELPHI老版本对动态方法调用的支持不是很好。你可以尝试用DLL(建议BPL)封装类和接口,然后通过对象来进行反射。
      

  7.   

    当然有能力的话,可以自己实现,需要自己进行参数压栈,然后CALL过程
      

  8.   

    同意,这样的需求应该没办法用反射!
    不过D7已经有了objAuto.pas单元,加上MethodInfo编译指令可以初步实现反射,CNPACK的CnObjAuto.pas对objAuto做了一些改进,还是喜欢用CnObjAuto