Open ElDuderinoBerlin opened 4 years ago
Hello Martin,
that's not possible at the moment. You have to specify the DLL path in the attribute on the interface you provide to the LegacyWrapper.
Kind Regards Franz
Hallo Franz,
ich versuche das selber. Gibt es eine Möglichkeit in WrapperClientInterceptor::Intercept(IInvocation invocation) an die WrapperConfig ranzukommen? Das Dependency-Injection verwirrt mich. Ich werde auch Assemblies unterstützen, nicht nur Natives, da ich aus Assemblies (VC++.NET) ebenfalls über Prozessgrenzen hinweg Funktionen aufrufen muss. IntPtr-to-String Marshaling habe ich schon implementiert, da Speicher nicht gemarshalt werden kann über Prozessgrenzen.
Hatte sowas: IntPtr HoleEtwas() -> string HoleEtwas() Bsp.: [LegacyDllMethod(CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] [return: ReturnMarshalAs(DefaultReturnType = typeof(IntPtr), ReturnMarshalerType = typeof(IntPtrToStringMarshaler) )] string HoleEtwas();
Gruß Martin
Habs selber geschafft! :-)
public WrapperClientInterceptor(Type interfaceType, WrapperClient wrapperClient, ILibraryNameProvider libraryNameProvider, IWrapperConfig config)
{
Raise.ArgumentNullException.IfIsNull(interfaceType, nameof(interfaceType));
Raise.ArgumentNullException.IfIsNull(wrapperClient, nameof(wrapperClient));
Raise.ArgumentNullException.IfIsNull(libraryNameProvider, nameof(libraryNameProvider));
_interfaceType = interfaceType;
_wrapperClient = wrapperClient;
_libraryNameProvider = libraryNameProvider;
_config = config;
}
var configuration = WrapperConfigBuilder.Create()
.TargetArchitecture(TargetArchitecture.X86)
.ModuleSearchDirectory("M$:\Redmond\Bill")
.Build();
Stell mir gern einen Pull Request ;)
@maddinthegreat bitte PR machen :) ich brauch die funktionalität auch!
Seid beide nun Mittäter!
@maddinthegreat erst wenn der PR da is :D
@sharpSteff du müsstest den Code ziehen können - bist Kollaborator.
@maddinthegreat gibt es Gründe wieso dein Repo kein offizieller Fork ist ?
Wieso Fork? Hab den Code so runtergeladen und modifiziert, dann wieder hochgeladen. Entweder du nimmst das so oder lässt es bleiben!
Naja du hast genau, das gleiche gemacht was ein Fork mit einem Klick gemacht hätte. Nur dass du die gesamte git History verloren hast und du über das repository keinen ssuberen Pull Request mehr auf das upstream Repo machen kannst
Trotzdem danke :)
Das ist eine private Ergänzung für ein spezielles Projekt gewesen. Da will ich keine Historie, noch mergen in Zukunft oder sonstwas! Das ich Dir Stunden an Coden gespart habe (ob Du das selber geschafft hättest, kann ich nicht sagen), kannste als nachträgliches Weihnachtsgeschenk betrachten. Bitte!
PS: Ich mach eben Bilder und benutze noch Papier. Bin eben oldschool. Und manchmal drucke ich mir Code aus, um ihn zu studieren.
Hello,
btw. nice project! Can i define the directory of the imported dll dynamically?
Regards Martin