![]() |
Interfaces über Modulgrenzen implementieren
Hallo,
ich schreibe gerade eine größere Anwendung mit umfangreichem Plugin-System. Ich wüsse jetzt gern, ob ich über die Modulgrenzen, d.h. innerhalb einer DLL, ein Plugin implementieren und das ans Hauptmodul liefern kann. Also z.B. so:
Delphi-Quellcode:
type
IMyInterface = interface function MyFUnction: string; end;
Delphi-Quellcode:
//DLL-Code
type TMyPlugin = class(TInterfacedObject, IMyInterface) function MyFunction: string; end; function GetPlugin: IMyInterface; stdcall; export; begin Result := MyPlugin; end;
Delphi-Quellcode:
Gibts da irgendwelche Hindernisse?
//EXE-Code
modh := loadlibrary('myplugin.dll'); GetPlugInProc := GetProcAddress(modh, 'GetPlugIn'); PluginIntf := GetPluginProc; Showmessage(PluginIntf.MyFunction); |
Re: Interfaces über Modulgrenzen implementieren
Musst halt mit den Strings aufpassen, entweder nur PCHar benutzen oder diese eine komische Unit einbinden (Name entfallen :/)
|
Re: Interfaces über Modulgrenzen implementieren
Ja, SharedMem ^^
Aber da schlägt ja wieder der Borland-MM zu. Das will ich eigentlich verhindern (Hab dazu schon n Thread aufgemacht ;-) ) |
Re: Interfaces über Modulgrenzen implementieren
Dann nim doch den Type WideString imho kann man dem Benutzen :)
|
Re: Interfaces über Modulgrenzen implementieren
Zitat:
Nicht nur weil sie nicht Delphi-spezifisch sind, sondern wohl auch weil im Jahre 2007 AnsiStrings einfach nur noch jämmerlich yestercentury sind. Solange du irgendwelche dinge darin packst, die keinerlei regionalen Kontext haben, mag das noch Sinn machen AnsiStrings zu nehmen, aber warum sollte man einem Russen, Koreaner, Japaner, Franzosen, [irgendeine Sprache != deiner eigenen] aufzwingen, in für ihn komisch aussehenden Zeichen zu tippen? Unicode ist also im Zweifelsfall sowieso vorzuziehen, auch wenn es nur das uralte UCS2 vom WideString ist. |
Re: Interfaces über Modulgrenzen implementieren
Widestrings beinhalten also weniger Compiler-Magic und laufen deswegen über Modulgrenzen?
Bitte sag mir doch mehr, und nicht immer nur so kleine Häppchen :cry: (Du willst mir nicht zufällig n Buch andrehen? :mrgreen: ) EDIT: Widestrings wären mir natürlich auch recht. Ich würd halt dann, bis das Programm komplett auf Unicode umgestellt wird (was im Moment NICHT geplant ist, vielleicht mit der Delphi-Version, die ne Unicode-VCL mitbringt) das aktuelle Codepage-ASCII reinpacken... |
Re: Interfaces über Modulgrenzen implementieren
Zitat:
Es ist auch der String, den man in COM benutzt (weshalb er in delphi gerne OleString genannt wird). Zitat:
Zitat:
Zitat:
|
Re: Interfaces über Modulgrenzen implementieren
Okay, cool, dann bitte nur noch den anderen Thread beantworten :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz