我有一个Delphi应用程序,我已经编写了一个相当简单的包装器.exe for.
基本上,有一个dll有一堆函数,其中一个我会在我的包装器完成所需的操作后迭代调用.我无法控制这个dll文件,永远不会.
好吧,现在这个DLL是BPL,我不知道如何在该文件中调用函数.提前致谢.
Rob*_*edy 10
使用包中函数的简单方法是"使用"包含该函数的单元,像往常一样调用它,并将包放在项目运行时包的列表中.为了实现这一点,有一些要求:
如果您不能满足第三个要求,或者您不想一直加载包,那么您可以调用LoadPackage它.实现这项工作的方法是让另一个包一直加载.它将由您的项目和要加载的包使用.中间包将公开一个接口(例如一些注册函数,变量或类),主包可以使用它来告诉应用程序它的功能是什么.您将无法直接在应用程序中"使用"主程序包的单元.
如果你不能满足前两个要求,那么就有更难的方法,如果你的应用程序不是用Delphi或C++ Builder编写的,那么你也需要这样做.像普通的DLL一样对待包.加载它LoadLibrary.使用GetProcAddress加载它的Initialize功能,然后调用它.(请记住,调用约定register不是stdcall.)然后加载要调用的函数的地址,请记住函数的名称已经被修改以包含一些单元和类型信息.在打电话Finalize之前调用该功能FreeLibrary.检查来源LoadPackage和UnloadPackage; 是否需要打电话CheckForDuplicateUnits可能取决于您是否可以满足要求编号1.