App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
C++ .dll Code zu .NET dll Code konvertieren?
- Ersteller Peacemaker
- Erstellt am
Peacemaker
Lt. Commander
- Mitglied seit
- 12.08.2002
- Beiträge
- 137
- Renomée
- 0
hi Leute
Ich möchte ein kleines Plugin (.DLL) für meinen Lieblings Texteditor "Proton 3" machen... (Habe noch nie ein DLL gemacht) Unter Dev-C++ hab ich es zum laufen gebracht. Nur blicke ich, trotz Tutorials, durch die WINAPI nicht wirklich durch ^^... somit kann ich ein Plugin Fenter nicht konfortabel nutzen
Am liebsten würde ich dieses DLL in .NET umsetzen (bevorzugt VB.net). Habe es mit Hilfe der MSDN versucht zu erstellen aber kein Erfolg... (beim versuch das Plugin einzubinden kommt ein Fehler "kein Startpunkt" oder so ähnlich...
Dann habe ich es auch noch in C# (.Net ist im Grunde eh alles das selbe nur andere Syntax ) versucht, aber auch kein Erfolg...
Hier der C++ Code der funtionierte... Kann mir jemand helfen daraus einen .NET Code zu machen?
Danke im Voraus
Ich möchte ein kleines Plugin (.DLL) für meinen Lieblings Texteditor "Proton 3" machen... (Habe noch nie ein DLL gemacht) Unter Dev-C++ hab ich es zum laufen gebracht. Nur blicke ich, trotz Tutorials, durch die WINAPI nicht wirklich durch ^^... somit kann ich ein Plugin Fenter nicht konfortabel nutzen
Am liebsten würde ich dieses DLL in .NET umsetzen (bevorzugt VB.net). Habe es mit Hilfe der MSDN versucht zu erstellen aber kein Erfolg... (beim versuch das Plugin einzubinden kommt ein Fehler "kein Startpunkt" oder so ähnlich...
Dann habe ich es auch noch in C# (.Net ist im Grunde eh alles das selbe nur andere Syntax ) versucht, aber auch kein Erfolg...
Hier der C++ Code der funtionierte... Kann mir jemand helfen daraus einen .NET Code zu machen?
Danke im Voraus
Code:
// Die Export-Anweisungen
extern "C" __declspec(dllexport) char * pluginStart( char * text, int selstart, int sellength );
extern "C" __declspec(dllexport) int pluginRueckgabetyp();
extern "C" __declspec(dllexport) int pluginInterfaceVersion();
// pluginStart() wird als erstes aufgerufen
char * pluginStart( char * text, int selstart, int sellength )
{
// Der Speicherbereich, der zurückgegeben wird.
// ...
try {
// Fenster
// Text wird an Texteditor zurückgegeben
return "test";
}
catch ( ... ) {
// Exceptions auffangen
return 0;
}
}
// Option: RUECKGABE_ERSETZT_EDITORTEXT = 2 / RUECKGABE_ERSETZT_MARKIERUNG = 1
int pluginRueckgabetyp()
{
return 1;
}
// Interfaceversion des Plugins
int pluginInterfaceVersion()
{
return 1;
}
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Das wird nicht gehen, da .net-DLLs gänzlich anders aufgebaut sind als normale Win32-DLLs. Wenn Proton keine .net-Plugins unterstützt, geht es eben nicht.
Poste am besten mal Deine Probleme mit dem Win-API. Ich kann Dir wahrscheinlich helfen.
Poste am besten mal Deine Probleme mit dem Win-API. Ich kann Dir wahrscheinlich helfen.
Peacemaker
Lt. Commander
- Mitglied seit
- 12.08.2002
- Beiträge
- 137
- Renomée
- 0
ok danke
ich habe mal dieses Tutorial angelesen:
http://www.winprog.org/tutorial/
Kann ich eigentlich ganz normalen C++ Sourcecode auch unter .NET, ohne .NET builden? Bei der .net 2002 ging das, aber bei der 2003er find ich die Option nicht...
WINAPI: mein Problem fängt schon ganz am Anfang bei der Winapi an... Ich habe c/c++ bisher immer nur für Konsolenanwendungen benutzt und habe somit keine Ahnung von der WINAPI
Ich habe zwar jede menge WINAPI Beispielcode (aus dem Tutorial) der als .c/.cpp auch funktioniert aber wie kann diesen zB.: in die pluginStart() Funktion der dll einbauen? Also ich habe Beispielcode von einem einfachen Fenster -> wie kann ich nun dieses Fenster in der dieser Funktion öffnen?
Viel habe ich eh nicht vor... Soll eine einfaches Fenster sein mit einer Listbox (oder vergleichbares), einem Textfeld, und ein paar Buttons... Das ganze soll eine mini Code-Templates Verwaltung werden mit der ich speichern, editieren und Template in den Text Editor einfügen kann...
Danke im Voraus
ich habe mal dieses Tutorial angelesen:
http://www.winprog.org/tutorial/
Kann ich eigentlich ganz normalen C++ Sourcecode auch unter .NET, ohne .NET builden? Bei der .net 2002 ging das, aber bei der 2003er find ich die Option nicht...
WINAPI: mein Problem fängt schon ganz am Anfang bei der Winapi an... Ich habe c/c++ bisher immer nur für Konsolenanwendungen benutzt und habe somit keine Ahnung von der WINAPI
Ich habe zwar jede menge WINAPI Beispielcode (aus dem Tutorial) der als .c/.cpp auch funktioniert aber wie kann diesen zB.: in die pluginStart() Funktion der dll einbauen? Also ich habe Beispielcode von einem einfachen Fenster -> wie kann ich nun dieses Fenster in der dieser Funktion öffnen?
Viel habe ich eh nicht vor... Soll eine einfaches Fenster sein mit einer Listbox (oder vergleichbares), einem Textfeld, und ein paar Buttons... Das ganze soll eine mini Code-Templates Verwaltung werden mit der ich speichern, editieren und Template in den Text Editor einfügen kann...
Danke im Voraus
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Erstmal zur Klärung der Begriffe: Mit .net meinst Du sicher Visual Studio. Das hat zwar das .net im Namen, ist aber bei weitem nicht darauf beschränkt. Eigentlich bezeichnet ".net" nur die Plattform, welche hauptsächlich aus dem .net-Framework besteht.Original geschrieben von Peacemaker
Kann ich eigentlich ganz normalen C++ Sourcecode auch unter .NET, ohne .NET builden? Bei der .net 2002 ging das, aber bei der 2003er find ich die Option nicht...
Ein Win32-Projekt erstellst Du mit Visual Studio 2003, indem Du auf Datei->Neu->Projekt gehst und dann als Typ Visual C++ auswählst und rechts entweder "ATL-Projekt", "MFC-DLL" oder "Win32-Projekt". ATL und MFC sind Klassenbibliotheken, die Du nutzen kannst. ATL ist klein, schnell und braucht oft keine Runtime-Bibliothek. MFC ist mächtiger als ATL, aber auch etwas schwerfälliger und braucht vor allem eine dicke Runtime. Bei einem reinen Win32-Projekt musst Du alles selbst machen. Hmmmm, schwierige Entscheidung, da Du ja eine DLL mit GUI bauen willst. Ohne GUI würde ich Dir ATL empfehlen. Mit GUI tendiere ich eher zu MFC, aber da hast Du die dicke Runtime, welche mit ausgeliefert werden muss. Reines Win32 ist theoretisch am besten, macht aber die meiste Arbeit. Ich gehe im folgenden mal von reinem Win32 aus.
Kommt drauf an. Ich nehme an, Du meinst das Beispiel aus Punkt 2 des Tutorials. Da musst Du den Code aus der WinMain verwenden. Ich würde mir einen Methode BuildWindow() bauen, welche den Code aus der WinMain (ggf. modifiziert) bekommt und diese dann aufrufen.Original geschrieben von Peacemaker
Ich habe zwar jede menge WINAPI Beispielcode (aus dem Tutorial) der als .c/.cpp auch funktioniert aber wie kann diesen zB.: in die pluginStart() Funktion der dll einbauen? Also ich habe Beispielcode von einem einfachen Fenster -> wie kann ich nun dieses Fenster in der dieser Funktion öffnen?
Also soll es ein Dialog werden. Hmmm, da gibt's prinzipiell schonmal 2 Möglichkeiten:Original geschrieben von Peacemaker
Viel habe ich eh nicht vor... Soll eine einfaches Fenster sein mit einer Listbox (oder vergleichbares), einem Textfeld, und ein paar Buttons... Das ganze soll eine mini Code-Templates Verwaltung werden mit der ich speichern, editieren und Template in den Text Editor einfügen kann...
1) Den Dialog komplett per Code bauen. Dazu musst Du für das Fenster keine neue Klasse registrieren, sondern nimmst stattdessen die Klasse #32770. Das wird aber alles recht mühselig.
2) Du stattest die DLL mit einer Dialog-Ressource aus. Den Dialog kannst Du dann wie in Visual Basic, Delphi usw. "zeichnen". Den fertig designten Dialog kann man dann per CreateDialog()-API laden und anschließend mit dem ShowWindow()-API anzeigen. Der ganze Spaß, der in der WinMain des Tutorials steht (bis zu dem ShowWindow()), entfällt dabei.
Ich würde die 2. Variante nutzen.
Ich habe noch nie eine DLL geschrieben, die einen Dialog anzeigt, also ist es gut möglich, dass nicht alles stimmt was ich hier schreibe.
Peacemaker
Lt. Commander
- Mitglied seit
- 12.08.2002
- Beiträge
- 137
- Renomée
- 0
ok danke für die Info
habe gerade eine alte Trail Version von Borland Builder auf meiner HDD gefunden . Da kann ich meine Forms per Drag & Drop zusammenbauen ich werde es mal austesten...
EDIT: habe c++.net dazuinstalliert und habs nun gefunden... mal schaun wie weit ich es schaffe
EDIT2: wie kann ich eine "DLL mit einer Dialog-Ressource ausstatten" ? naja ich werds schon irgendwie rausfinden...
habe gerade eine alte Trail Version von Borland Builder auf meiner HDD gefunden . Da kann ich meine Forms per Drag & Drop zusammenbauen ich werde es mal austesten...
EDIT: habe c++.net dazuinstalliert und habs nun gefunden... mal schaun wie weit ich es schaffe
EDIT2: wie kann ich eine "DLL mit einer Dialog-Ressource ausstatten" ? naja ich werds schon irgendwie rausfinden...
Zuletzt bearbeitet:
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
In VS 2003: Datei->Neues Element hinzufügen, dann Ressourcenskript. Und dann in der Ressourcenansicht per Rechtsklick einen Dialog hinzufügen.Original geschrieben von Peacemaker
EDIT2: wie kann ich eine "DLL mit einer Dialog-Ressource ausstatten" ? naja ich werds schon irgendwie rausfinden...
Peacemaker
Lt. Commander
- Mitglied seit
- 12.08.2002
- Beiträge
- 137
- Renomée
- 0
super danke nun hab ichs auch gefunden
ich wollte das immer in der Projektansicht hinzufügen und da wollte VS das nicht machen...
So bisher habe ich mal die "Programm"-Funktionen über ein "Win32 C++ Forms Projekt" fast alle ausprogrammiert (dauerhaft speichern und die Fehlerbehandlung fehlt noch )...
Mal schaun wie ich das morgen in so einen Dialog bringe
ich wollte das immer in der Projektansicht hinzufügen und da wollte VS das nicht machen...
So bisher habe ich mal die "Programm"-Funktionen über ein "Win32 C++ Forms Projekt" fast alle ausprogrammiert (dauerhaft speichern und die Fehlerbehandlung fehlt noch )...
Mal schaun wie ich das morgen in so einen Dialog bringe
Peacemaker
Lt. Commander
- Mitglied seit
- 12.08.2002
- Beiträge
- 137
- Renomée
- 0
hi
Nachdem ich heute Vormittag & Nachmittag mit dll & Dialogs herumgetestet habe und bei mir beides zusammen (dll & dialog) nie funktioniert hat, habe ich mir mal etwas grundlegendes überlegt...
Um das Plugin mit den geplanten funktionen zu starten muss man insgesamt 4 klicks machen... mit einem Hintergrundprogramm ist das genausoviel wenn nicht weniger...
also habe ich die DLL aufgegeben und mir heute so ein kleines .net Programmchen mit allen raffinessen wie XML-Dateiformat & XSD-Schema ect... gemacht . warum nicht gleich so...
Nachdem ich heute Vormittag & Nachmittag mit dll & Dialogs herumgetestet habe und bei mir beides zusammen (dll & dialog) nie funktioniert hat, habe ich mir mal etwas grundlegendes überlegt...
Um das Plugin mit den geplanten funktionen zu starten muss man insgesamt 4 klicks machen... mit einem Hintergrundprogramm ist das genausoviel wenn nicht weniger...
also habe ich die DLL aufgegeben und mir heute so ein kleines .net Programmchen mit allen raffinessen wie XML-Dateiformat & XSD-Schema ect... gemacht . warum nicht gleich so...
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 52K