sstvmaster hat geschrieben:was für bits?
Wie heißt Bitness auf deutsch? Ich meine, dass zu einem 64-Bit Betriebssystem 64-Bit DLLs gehören. Ich meine auch, dass wenn du regsvr32 direkt aufrufst, dessen 64-Bit-Version genommen wird, die die natürlich auch die 64-bit DLL registrieren will. Wenn daher die Registrierung gelingt, war die DLL 64bittig. Das ist bei dir gelungen, also meine ich, dass du eine 64-Bit-DLL einem 32-Bit Lazarus vorwirfst. Das sollte nicht gutgehen...
Ist aber nicht mehr als eine schöne Theorie. Ich habe dieselbe DLL auch mit der 32-Bit-Version von regsvr32 registrieren können (die im Ordner syswow64), und im 32-bit Lazarus trat derselbe Fehler auf.
Welchen FPC verwendest du für Laz 1.9? Wenn das dieselbe Version ist wie bei 1.8RC5 (also fpc 3.04), dann liegt ein Lazarus-Problem vor. Ich weiß, dass es vor einiger Zeit Probleme gab, bestimmte Events zu erzeugen. Wenn es eine andere FPC-Version ist, liegt das Problem vielleicht eher im Compiler.
Je nachdem wo, würde ich vorschlagen, dass du dich entsprechend bei der Lazarus- bzw. FPC-Mailinglist anmelden und das Problem dort nochmals schildern solltest. Leider verfolgen viele Entwickler das Forum nicht und kriegen das nicht mit.
[EDIT]
Aber ich kann das ja selbst checken: Ich habe Laz 1.9 und 1.8RC5 jeweils mit fpc 3.04 aufgesetzt, und wie bei dir tritt der Fehler bei Laz 1.9 auf, nicht bei 1.8RC5. Daher sollte der Fehler im Lazarus liegen.
Dann bin ich ein paar Revisions im SVN zurückgegangen und habe gefunden, dass der Fehler zum ersten Mal bei r56402 auftritt ("codetools: parse attributes" von Mattias Gärtner). Daher solltest du einen Bugreport schreiben, das Problem schildern, das Demo-Projekt inkl DLL anhängen und darauf hinweisen, dass der Fehler bei r56402 auftritt. Das Stichwort "Regression" im Titel macht es etwas eiliger.