我的应用程序是使用runtime packages构建的,并使用LoadPackage
函数加载它们。
然后,它使用GetClass
函数获取类类型。
var
MyClass : TPersistentClass;
begin
if(LoadPackage('.\PackageA.bpl') = 0) then
raise Exception.Create('Error loading PackageA.bpl');
if(LoadPackage('.\PackageB.bpl') = 0) then
raise Exception.Create('Error loading PackageB.bpl');
MyClass := GetClass('TMyClass');
end;
有没有办法获取
MyClass
来源的程序包的名称?
最佳答案
使用RTL的FindClassHInstance()
函数获取拥有GetClass()
返回的类类型的已加载包的句柄。这将与LoadPackage()
返回的句柄相同。
您可以自己跟踪加载的包句柄,也可以将句柄传递给Win32 API GetModuleFileName()
函数,以查询该句柄的包路径和文件名。
关于delphi - 如何获取TPersistentClass来自的动态包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55180431/