Abendzusammen,
ich habe eine EXE-Anwendung programmiert. Nun möchte ich aber einige Funktionen und Eigschaften so nutzen, das ich meine Exe Anwendung in einer anderen Programmiersprache nutzen.
Was muss ich dafür einstellen bzw. hinzufügen??
Und geht das so einfach.#Kenne mich damit nicht wirklich aus.
Wie kann ich die Funktionen und Eigenschaften freigeben?
Gruß Simon
Hallo Grimmbizkit,
dafür sind eigentlich DLLs. Und wenn das programmiersprachenübergreifend gehen soll, dann müssen das Standard-C-DLL sein, die man in C# nicht direkt erstellen kann.
herbivore
Original von Elric
Ja, das liegt an dem InterfaceType.None. Mir fallen im Moment 2 Möglichkeiten ein (ich glaub es gibt noch eine einfachere, aber da müßte ich erst noch in meinem alten Code recherchieren.)Du setzt den InterfaceType von None auf Autodual. Dann siehst Du die Methoden im VB6. Die MSDN sagt allerdings "Using AutoDual is strongly discouraged ". Man sollte es also nur zum Entwickeln setzen und später wieder auf None.
Oder:
Du machst Dir ein Interface, musst aber dann der Klasse das Interface als Source geben. In Deinem Fall also ungefähr so:
[GuidAttribute("7121BBE3-0F4A-428a-A6E5-978378AC92D4"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface IMyBRP { [DispId(1)] string CurrentTime(); } [ClassInterface(ClassInterfaceType.None), Guid("f525452c-61ae-46ec-8818-11f920fd39f7"), ComSourceInterfaces(typeof(IMyBRP)) ] public class MyBRP:IMyBRP { public string CurrentTime() { return DateTime.Now.ToString(); } public MyBRP() { } }
Schönes Wochenende.
Elric
Oder Siehe dazu auch Guckst du
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...