Libnodave mit VS2008 C++

Zipfelklatscher

Level-1
Beiträge
27
Reaktionspunkte
0
Hallo zusammen,

ich hab ein Problem mit den libnodave C Headern.
Ich hab ein kleines Testprogramm, welches ich unter Visual Studio 2008 mit C++
erstellt habe. Da die Quelldateien in C geschrieben wurden habe ich den Quelltext (siehe unten) leicht verändern müssen. Der Kompiler meckert beim
Übersetzen auch nicht nur der Linker bricht mit den folgenden Meldungen ab.

Code:
1>Verknüpfen...
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveDisconnectAdapter@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveDisconnectPLC@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveGetFloat@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveGetS32@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveReadBytes@24" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveConnectPLC@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveNewConnection@16" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveInitAdapter@4" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__daveNewInterface@24" in Funktion "_main".
1>nodaveRohling.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__setPort@12" in Funktion "_main".
1>C:\Users\Administrator\Documents\Visual Studio 2008\Projects\nodaveRohling\Debug\nodaveRohling.exe : fatal error LNK1120: 10 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Administrator\Documents\Visual Studio 2008\Projects\nodaveRohling\nodaveRohling\Debug\BuildLog.htm" gespeichert.
1>nodaveRohling - 11 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Hier mein Quellcode:

HTML:
#include <stdio.h>
#include "stdafx.h"


extern "C"{
#define BCCWIN 
#define LITTLEENDIAN
}
extern "C"{
#include "nodave.h"
}
extern "C"{
#include "setport.h"
}

extern "C"{
int main(int argc, char **argv) {
    int a,b,c,
	localMPI, plcMPI;
    float d;
    daveInterface * di;
    daveConnection * dc;
    _daveOSserialType fds;
    
    localMPI=0;
    plcMPI=2;
    
//    daveDebug=daveDebugAll;
    
    fds.rfd=setPort(argv[1],"38400",'O');
    fds.wfd=fds.rfd;

    di =daveNewInterface(fds, "IF1", localMPI, daveProtoMPI, daveSpeed187k);
    di ->timeout=5000000;
	
    daveInitAdapter(di);
	
    dc =daveNewConnection(di,plcMPI,0,0);  // insert your MPI address here
    printf("ConnectPLC\n");

    daveConnectPLC(dc);
    
    daveReadBytes(dc, daveFlags, 0, 0, 16,NULL);
            
    a=daveGetS32(dc);	
    b=daveGetS32(dc);
    c=daveGetS32(dc);
    d=daveGetFloat(dc);
	    
    printf("FD0: %d\n",a);
    printf("FD4: %d\n",b);
    printf("FD8: %d\n",c);
    printf("FD12: %f\n",d);
	
    printf("Now disconnecting\n");	
    daveDisconnectPLC(dc);
    daveDisconnectAdapter(di);

	return 0;
}
}

Hat vielleicht von Euch jemand eine Lösung für das Problem ?

Danke schon mal im vorraus
 
Hier das Visual Studio Projekt im Anhang.
 

Anhänge

  • nodavelib_VS2008.zip
    2,4 MB · Aufrufe: 224
Hallo,

das Thema hat sich erledigt, hab die Lösung gefunden.
Hatte die .obj nicht eingebunden.

Code:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

// Bibliotek einbinden
#pragma comment(lib, "libnodave.lib")

extern "C"{
#define BCCWIN 
#define LITTLEENDIAN
}
extern "C"{
#include "nodave.h"
}
extern "C"{
#include "openSocket.h"
}
 
Dei Bibliothek kann auch normal unter den Linkereinstellungen hinzugefügt werden.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…