Zdefiniowałem w unicie dodanym do Bpl klasę i metodę:
type
TBaseTest = class
private
public
end;
implementation
procedure ClassTest(test: TObject); stdcall;
begin
if test is TBaseTest
then ShowMessage('To jest klasa typu TBaseTest')
else ShowMessage('To NIE jest klasa typu TBaseTest'+#13+
'ponieważ jest to klasa typu '+test.ClassName);
end;
exports ClassTest name 'ClassTest';
a następnie (po załadowaniu Bpla) wywołuję ją z aplikacji:
var
myTest: procedure (test: TObject); stdcall;
myTestObject: TBaseTest;
begin
//.....
@myTest := GetProcAddress(myHandle,'ClassTest');
if (@myTest <> nil) then
begin
myTestObject := TBaseTest.Create;
myTest(myTestObject);
FreeAndNil(myTestObject);
i niestety metoda nie rozpoznaje typu klasy (if test is TBaseTest) mimo, że test.ClassName wyświetla nazwę prawidłowo. Oczywiście jak badam standartowa klase Delphi np. TForm, TButton wszystko jest w porządku. Gdzie popełniam bład?
dodanie znaczników <code class="delphi"> - Furious Programming