Libnodave: openS7online Übergabeproblem

ich988

Level-1
Beiträge
144
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
möchte mich gerade ein wenig in Libnodave einarbeiten, habe aber ein kleines Problemchen beim testS7online nachprogrammieren.
Die normale testS7online funktioniert. Will ich jedoch den Code aus der testS7online.c kompilieren, erhalte ich folgende Fehlermeldung:

Fehler 1 error C2660: 'openS7online': Funktion akzeptiert keine 1 Argumente d:\spstest\tests7onlinetest\tests7onlinetest\tests7onlinetest.cpp 29

an folgender Stelle:
fds.rfd=openS7online(argv[1]);
Dies ist auch klar, da die openS7online folgenden aufruf besitzt:
EXPORTSPEC HANDLE DECL2 openS7online(constchar * accessPoint, HWND handle)
Das handle wird in der openS7online an folgender Stelle genutzt:
SetSinecHWnd(h, handle);
Bin mit den handle's nicht so fit. Was müsste ich an dieser Stelle noch übergeben?


Gruß
ich988
 
Zuletzt bearbeitet:
Ich denke, der Aufruf ist veraltet. Da ist in ener neueren Version von Libnodave noch das Handle der Application dazugekommen.
Das mußt du mit übergeben.

In Delphi mit der neusten Version von libnodave sieht das so aus:

Code:
Address:= 'S7ONLINE'+ #0;
DaveInterface.Remote[i].DaveFDS.rfd:=OpenS7Online(@Address[1], Application.MainForm.Handle);
Und so die Deklaration:

Code:
function openS7online(name:pchar;handle: LongWord):longint; stdcall;
external LibName {$ifdef WIN32} name 'openS7online'{$ENDIF};

Diese Handle brauchst du auch
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Super Danke schonmal hierfür.
Leider weis ich dennoch nicht genau wie es in C aussehen müsste(kann leider kein Delphi). Aber ein bisschen was hats gebracht.
Hab also neuen Such-Stoff.
Falls jemand weis wie es in C aussehen muss immer her damit :)
 
Zuletzt bearbeitet:
Vielleicht so:
Code:
Application->Handle

Allerdings bin ich ja nicht so der C++-Mann, probieren kannst du es ja mal.
 
Hallo zusammen,

es tut mir Leid das ich so einen alten Thread wieder ausbuddel aber ich habe vermutlich ein ähnliches Problem. Kann mir jemmand sagen was ich jetzt genau bei opens7online bei VBA in Excel oder Access eingeben muss? Der Handle der Application ist mir nicht ganz klar.

z.B.: opens7online("/S7ONLINE", ???)

Ich versuche über ein CP5611 mit S7Online einen DB auszulesen, mit TCP/IP hat es schon mal geklappt.

MfG Daniel
 
Zurück
Oben