C++ to PB
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
C++ to PB
Hallo,
hab aus Spass und Uebung (um meine eingerosteten C++-Kenntnisse wieder aufzufrischen) ein kleines Programm geschrieben, dass HTML-Code aus PB-Code generiert (Syntaxhighlighting) ... Aus diesem kleinen Projekt ist jetzt ein ziemlich umfangreiches geworden mit sehr vielen Einstellungsmoeglichkeiten - und ich bin wirklich sehr zufrieden damit.
Da das ganze aber nur unter Konsole funktioniert (meine WinAPI-Kenntnisse sind sehr schwach ...), dachte ich mir ich nutz meine in C++ geschriebenen Funktionen und setze sie in PB ein ... Dann muss ich nur eine schoene GUI dafuer entwickeln...
Wie stelle ich das an? Wuerde gern darauf verzichten eine DLL zu erstellen, da ich das alles in einer EXE gepackt haben will. Gibts da irgendwelche Moeglichkeiten?
Ich nutze VC++ 2008 Express ...
hab aus Spass und Uebung (um meine eingerosteten C++-Kenntnisse wieder aufzufrischen) ein kleines Programm geschrieben, dass HTML-Code aus PB-Code generiert (Syntaxhighlighting) ... Aus diesem kleinen Projekt ist jetzt ein ziemlich umfangreiches geworden mit sehr vielen Einstellungsmoeglichkeiten - und ich bin wirklich sehr zufrieden damit.
Da das ganze aber nur unter Konsole funktioniert (meine WinAPI-Kenntnisse sind sehr schwach ...), dachte ich mir ich nutz meine in C++ geschriebenen Funktionen und setze sie in PB ein ... Dann muss ich nur eine schoene GUI dafuer entwickeln...
Wie stelle ich das an? Wuerde gern darauf verzichten eine DLL zu erstellen, da ich das alles in einer EXE gepackt haben will. Gibts da irgendwelche Moeglichkeiten?
Ich nutze VC++ 2008 Express ...
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Include Binary, zweite Exe temporär entpacken, am besten nach temp und
am ende löschen.
am ende löschen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Natuerlich, du erstellst einfach eine statische Lib. Musst deine Funktionen
dann aber als C Funktionen exportieren.
Eventuell musst du auch die neue Runtime mit einbinden (MSVCRT), PB
nutzt nur Version 6, VC++ 2008 aber Version 9. Bei dem Erstellen der Lib,
solltest du erst einmal alle Optimierungen deaktivieren.
dann aber als C Funktionen exportieren.
Code: Alles auswählen
extern "C" void bla()
{
}
nutzt nur Version 6, VC++ 2008 aber Version 9. Bei dem Erstellen der Lib,
solltest du erst einmal alle Optimierungen deaktivieren.
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Cool!edel hat geschrieben:Natuerlich, du erstellst einfach eine statische Lib. Musst deine Funktionen
dann aber als C Funktionen exportieren.
Eventuell musst du auch die neue Runtime mit einbinden (MSVCRT), PBCode: Alles auswählen
extern "C" void bla() { }
nutzt nur Version 6, VC++ 2008 aber Version 9. Bei dem Erstellen der Lib,
solltest du erst einmal alle Optimierungen deaktivieren.
Hab da gleich mal einpaar Fragen ... kenne mich da nich so sonderlich gut aus, also bitte um Verstaendnis

1. Wie meinst du das mit ich muss alle Funktionen als C-Funktionen exportieren? Bedeutet das, ich darf kein standardkomformes C++ verwenden und darf nur C-Funktionen verwenden? Zumal ich ja absolut keine Ahnung von C habe ...

2. Wenn sieht dann die Benutzung dieser "statischen Lib" unter PB aus?
3. Wuerde sich das letzter Problem aufheben, wenn ich eine aelter VC++-Version installiere und damit die Lib erstelle? (hab naemlich noch VC++ 6.0 Standard zu Hause, dass ich vor etlichen jahren gekauft habe)
Ja VC++ V6 ist optimal fuer PB. Zumindest fuer x86. Den Kompiler
nutze ich auch. Die IDE ist dafuer aber ein Graus.
Du kannst natuerlich soviel C++ schreiben wie du lustig bist, PB kann
aber nichts mit C++ Funktionen anfangen. Also musst du sie als C
Funktion exportieren. In der Regel reicht dafuer ein ' extern "C" '
am Funktionskopf.
In PB kannst du sie dann so importieren :
Oder ImportC wenn du cdecl eingestellt hast.
nutze ich auch. Die IDE ist dafuer aber ein Graus.
Du kannst natuerlich soviel C++ schreiben wie du lustig bist, PB kann
aber nichts mit C++ Funktionen anfangen. Also musst du sie als C
Funktion exportieren. In der Regel reicht dafuer ein ' extern "C" '
am Funktionskopf.
In PB kannst du sie dann so importieren :
Code: Alles auswählen
Import "deinelib.lib"
deineFunktion(param,bla)
EndImport
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten: