Ich muss, bevor ich mein Problem schildere, eines vorwegsagen: PB ist super. Das ist genau die Sprache, die ich brauche, um die von mir benötigten Anwendungen zu schreiben. Dazu gehört insbesondere das Einbinden von Word mittels PureDisphelper bzw. jetzt ComatePlus.
Ich habe mit C ein wenig angefangen, um meinen Programmierhorizont zu erweitern. Ich kann einfache GUIs erstellen, und nun will ich Word einbinden und zwar mittels der Disphelper-Lib. Aber ich bekomme beim Kompilieren die Fehlermeldung:
[Linker Error] undefined reference to 'WinMain@16'
Was mache ich da falsch??
PS
Ich benutze den Bloodshed-Compiler
C und Disphelper
C und Disphelper
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Win 10 | PB 5.72
Du benutz einen PB Source/PB Userlib mit einem C Compiler?Andi hat geschrieben: Ich kann einfache GUIs erstellen, und nun will ich Word einbinden und zwar mittels der Disphelper-Lib. [...]
PS
Ich benutze den Bloodshed-Compiler
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Wenn WinMain nicht definiert ist, heißt das, dass du dein Projekt als Windows Anwendung
linken lässt, obwohl du keine WinMain Methode implementiert hast.
Es gibt 2 mögliche Lösungen dafür: Entweder lässt du deine Projekt als Konsolenprogramm kompilieren
(Stichwort Subsystem, so heißt das Ganze), oder du implementierst deine WinMain Methode
anstatt einer normalen int main(). Wie diese Funktion auszusehen hat, findest du via Google...
linken lässt, obwohl du keine WinMain Methode implementiert hast.
Es gibt 2 mögliche Lösungen dafür: Entweder lässt du deine Projekt als Konsolenprogramm kompilieren
(Stichwort Subsystem, so heißt das Ganze), oder du implementierst deine WinMain Methode
anstatt einer normalen int main(). Wie diese Funktion auszusehen hat, findest du via Google...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Für PB gibts die PureDisphelper Library welche eine Opensource Library namens Disphelper wrapptcxAlex hat geschrieben:Du benutz einen PB Source/PB Userlib mit einem C Compiler?Andi hat geschrieben: Ich kann einfache GUIs erstellen, und nun will ich Word einbinden und zwar mittels der Disphelper-Lib. [...]
PS
Ich benutze den Bloodshed-Compiler

Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Ah... Wieder mal was gelernt.milan1612 hat geschrieben: Für PB gibts die PureDisphelper Library welche eine Opensource Library namens Disphelper wrappt
Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Der in PureDispHelper enthaltene DispHelper.lib ist für Purebasic von mir modifiziert worden.
Must dir mal den Orginalcode mal downloaden.
Must dir mal den Orginalcode mal downloaden.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Danke, für die Hinweise! In der Tat muss es eine Window Application sein und darf kein Konsolenprogramm sein. Ich habe jetzt die folgenden Zeilen C-Code am Anfang der int WINAPI WinMain(HINSTANCE hInstance,....):
Das klappt auch. Aber ich möchte, dass das Worddokument sozusagen auf Knopfdruck erstellt wird. Dazu habe ich einen Button erstellt. Wenn ich aber die obigen Zeilen in das Eventhandling (WM_Command) für diesen Button innerhalb der Callback-Prozedur packe, bleibt der Compiler schon bei DISPATCH_OBJ(wdApp) hängen und meldet: Syntax error before '*' token.
Wäre toll, wenn mir da jemand helfen könnte....
Code: Alles auswählen
DISPATCH_OBJ(wdApp);
dhInitialize(TRUE);
dhToggleExceptions(TRUE);
dhCreateObject(L"Word.Application", NULL, &wdApp);
dhPutValue(wdApp, L".Visible = %b", TRUE);
dhCallMethod(wdApp, L".Documents.Add");
dhCallMethod(wdApp, L".Selection.TypeText(%S)", L"DispHelper Word sample!\n\n");
SAFE_RELEASE(wdApp);
dhUninitialize(TRUE);
Wäre toll, wenn mir da jemand helfen könnte....
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Win 10 | PB 5.72