Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: inu am 09.08.06 - 13:56:17

Titel: C-API und Visual C++ 2005 Express
Beitrag 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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: 0xse am 09.08.06 - 17:32:21
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 :)
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: eknori am 09.08.06 - 17:46:45
Zitat
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 :-)

Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 09.08.06 - 18:57:23
@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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: RHolighaus am 09.08.06 - 20:06:36
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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 09.08.06 - 20:18:50
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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: RHolighaus am 09.08.06 - 20:37:19
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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 10.08.06 - 07:09:58
@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.
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: 0xse am 10.08.06 - 10:32:47
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 :)
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 10.08.06 - 11:12:20
@Oxse:

Das Problem ist nur, dass die Fehlermeldung in einer der Notes-API zugehörigen Datei auftritt!
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: 0xse am 11.08.06 - 09:35:20
Und? Die defines sind global :)
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 11.08.06 - 11:40:17
@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
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: 0xse am 11.08.06 - 15:21:19
Dann schreib mal das in deinen Code, bevor du die Datei inkludierst.

#define NT 1

Damit sollte das Problem gelöst sein :)
Titel: Re: C-API und Visual C++ 2005 Express
Beitrag von: inu am 11.08.06 - 15:27:26
@Oxse: Danke, das war's  :)