我的应用程序是使用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
来源的软件包的名称?
答案 0 :(得分:3)
使用RTL的FindClassHInstance()
函数获取拥有GetClass()
返回的类类型的已加载包的句柄。这与LoadPackage()
返回的句柄相同。
您可以自己跟踪加载的包句柄,也可以将句柄传递给Win32 API GetModuleFileName()
函数,以查询该句柄的包路径和文件名。