Przypisywanie wartość zmiennych przez plugin

0

Witam, mam problem, mam plugin który się komunikuje z programem i program wysyła mu w wywołaniu klasę a plugin ma zadanie ją uzupełnić, i przy próbie odczytania wartości w klasie wywala "Access Violation"

Źródło pluginu:

http://pastebin.org/57171 - Kod pluginu
http://pastebin.org/57177 - Część programu wykonującego plugin, klasa jest ta sama co w Kod Pluginu

Z góry, dzięki za odpowiedź:)

0

to nie ma prawa działać! Stwórz sobie nową dll i PRZECZYTAJ CO TAM PISZE W KOMENTARZU

0

Czyli nie mogę operować na klasach, czy po prostu klasa nie może używać stringów tylko ShortStringów lub PansiCharów?

Przekazuje dane przez referencje, to chyba powinno działać?

Wcześniej miałem pełno parametrów PansiChar w Execute przekazywanych przez referencję i działało, ale wg. mnie jest to bezsensowne rozwiązanie:)
A nawet jeżeli to nie wychodzi, to mogę zrobić tak, że wysyłam samą klasę ze wskaźnikami od procedur typu UpdateModuleInfo, GetModuleInfo?

0

standardowo możesz przekazywać

  1. typy proste (integer, byte, double, boolean, itp)
  2. stringi jako pchar (musisz pamiętać o allokowaniu i zwalnianiu pamięci)
  3. rekordy składające się z powyższych

jeśli chcesz przekazać coś więcej (string, obiekt) to musisz użyć sharemem

alternatywą są interfejsy, ale to dłuższa bajka :p

0

Czyli mam rekord

type TModuleInfo = record
  Name        : PChar;
  Version     : PChar;
  Description : PChar;
  Author      : PChar;
  Path        : PChar;
  Interval    : Integer;
  Status      : Boolean;
  Error       : Boolean;
end;

I jak wysyłam przez referencje ten rekord i chce ponownie odczytać to zamiast Patha wyskakują jakieś krzaczki, zaalokować pamięci PCharowi czyli? Jak?

1 użytkowników online, w tym zalogowanych: 0, gości: 1