Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: inu am 09.08.06 - 13:56:17
-
Hallo Leute,
ich soll einen kleinen Server-Task programmieren. Habe mir dazu die kostenlose Version VC++ 2005 Express gedownloadet und installiert. Habe auch auf der IBM-Seite die C-API von Notes gefunden und heruntergeladen.
Wie binde ich nun die C-API von Notes in VC++ ein? Muß ich da irgendwelche .h-Dateien kopieren?
Vielen Dank
-
Es gibt Hilfedatenbanken für die C/C++ Notes API. Die einfach bei IBM runterladen. Da sind gute Beispiele und Erläuterungen drin enthalten. Damit solltest du dich da locker durchhangeln können :)
-
Muß ich da irgendwelche .h-Dateien kopieren?
irgendwelche .h Dateien sind immer gut, wenn man ein konkretes Ziel verfolgt. Die bindet man dann irgendwo ein; irgendwas wird dann schon dabei herauskommen ... wahrscheinlich Fehler.
Und du bist sicher, daß die Aufgabe für dich zu bewältigen ist ? Ich meine nur, weil du eigentlich eine der Basics fragst über die man nicht mehr nachdenken muss, wenn man auch nur einigermassen sein Handwerkszeug beherrscht.
Aber gucke mal unter Projekt - Eigenschaften
Ist allerdings nur eine Stelle, wo du irgendwas eintragen musst :-)
-
@eknori:
Ich habe die Hilfe-DB zur API durchgearbeitet und die dort benannten EInstellungen in der IDE vorgenommen.
Nun erhalte ich aber beim Kompilieren diesen Fehler:
c:\lotus\notescpp\include\lnglosym.h(67) : fatal error C1189: #error : ERROR: No platform specified.
Ich nutze eine Domino/Notes Umgebung der Version 7.0.1
Vielen Dank
-
Hallo inu,
eine Präprozessordefinition, die die Platform definiert, muss sein.
Entweder mit #define NT oder unter den Projekteinstellungen im Abschnitt C/C++ unter Präprozessordefinitionen ein NT.
Das installieren und einbinden des Platform SDK von Microsoft ist auch noch notwendig.
Rolf
-
So, diesen Fehler ist jetzt auch weg. Nun habe ich folgenden Quelltext:
#include <iostream>
#include "lncppapi.h"
#include "stdafx.h"
int main(int argc, char *argv[])
{ int ProgramStatus = 0;
LNNotesSession session;
LNServerAddin addin;
}
Jetzt liedert der Compiler diese Fehler:
.\test3.cpp(9) : error C2065: 'LNNotesSession': nichtdeklarierter Bezeichner
.\test3.cpp(9) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'session'
.\test3.cpp(9) : error C2065: 'session': nichtdeklarierter Bezeichner
.\test3.cpp(10) : error C2065: 'LNServerAddin': nichtdeklarierter Bezeichner
.\test3.cpp(10) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'addin'
.\test3.cpp(10) : error C2065: 'addin': nichtdeklarierter Bezeichner
AssemblyInfo.cpp
@Rolf: Was meinst Du mit Platform SDK?
@Rolf: PS.: Was ist Dich schon immer mal fragen wollte: Ist Dein POP3Connect-Tool Release-7-tauglich?
Danke
-
Probier mal die Reihenfolge der #includes zu ändern.
Erst das #include "stdafx.h" danach den Rest.
Danach wirst Du auf das Problem des fehlenden Platform SDKs stossen.
Denn das Notes SDK benutzt Funktionen die in der Express Version so nicht enthalten sind.
Suche bei Microsoft nach "Platform SDK", lade es runter und installiere das.
In den Projekteinstellungen noch das Include und das Lib Verzeichnis eintragen nicht vergessen.
Ja, der Pop3Connector funktioniert auch unter Domino 7.*
Rolf
-
@Rolf:
Die Reihenfolge de #includes habe ich getauscht. Hier tritt nun wieder das Problem mit "No platform specified" auf.
Ich bin gerade dabei, die Platform SDK zu installieren. Die Installation scheint doch etwas länger zu dauern.
-
Es kommt drauf an welches Betriebssystem du verwendest. Die # Sachen sind größtenteils genormte Compileranweisungen. Wenn du damit eine Konstante (siehe oben mit define) definierst, die das Betriebssystem festlegt, weiß der Compiler welchen Code er kompilieren soll. Denn diese Konstante wird später irgendwo abgefragt.
Kann ja sein das du die C++ API unter Linux, unter Windows oder auf einem Mac verwenden willst :)
Edit: Definiere die Konstante am besten vor den Includes :)
-
@Oxse:
Das Problem ist nur, dass die Fehlermeldung in einer der Notes-API zugehörigen Datei auftritt!
-
Und? Die defines sind global :)
-
@Oxse:
hier ist das Stück Originalcode aus der von der IBM mitgelieferten "lnglosym.h" die bemängelt wird. Die mittlere Zeile gibt der Compiler aus:
#if !defined NT && !defined OS2_2x && !defined UNIX && !defined MAC
#error ERROR: No platform specified.
#endif
-
Dann schreib mal das in deinen Code, bevor du die Datei inkludierst.
#define NT 1
Damit sollte das Problem gelöst sein :)
-
@Oxse: Danke, das war's :)