# Libnodave: openS7online Übergabeproblem



## ich988 (27 November 2008)

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


----------



## Ralle (27 November 2008)

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:


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


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

Diese Handle brauchst du auch


----------



## ich988 (27 November 2008)

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


----------



## Ralle (27 November 2008)

Vielleicht so: 
	
	



```
Application->Handle
```

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


----------



## Ragamuffin (27 Oktober 2012)

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


----------

