INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

DLL einbinden - String



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

04.05.2015, 11:30 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2015 11:33 von Lars_Tragl.)
Beitrag #1

Lars_Tragl Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Apr 2014

2012
2014
DE



DLL einbinden - String
Hey,

ich versuche gerade eine DLL in LabVIEW einzubinden. Die DLL selbst ist in C++ geschrieben (Borland C++ Builder). Zu Testzwecken wollte ich mir meine bisherigen Ergebnisse ausgeben lassen. Allerdings habe ich hierbei Probleme mir den String ausgeben zu lassen. Die DLL gibt jedesmal den Fehler 1097 zurück. Die Zahlenwerte kriege ich zurück. Lediglich beim String harkt es.
Meine Frage ist jetzt, sind Strings in C / C++ kompatibel zu Strings in LabVIEW ? oder wo liegt mein Problem?

Vielen Dank für die Hilfe

hier mein DLL Einstiegspunkt:
//---------------------------------------------------------------------------



#include <vcl.h>
#include <windows.h>
#include "Wrapper.hpp"

#pragma hdrstop

#define DLLEXPORT __declspec(dllexport)

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//--------------------------------------------------------------------------------


// The extern "C" declaration allows mixed languages compactability,
// it prevents the C++ compiler from using decorated (modified)
// names for the functions
extern "C"

{
DLLEXPORT int getErrorCode_LabVIEW();
DLLEXPORT string getErrorString_LabVIEW();
DLLEXPORT unsigned int selectProtocol_LabVIEW(unsigned int);
DLLEXPORT unsigned int getResult_LabVIEW();
DLLEXPORT unsigned int getAnswer_LabVIEW();

DLLEXPORT int getErrorCode_Labview()
{
Wrapper wrapper;
return wrapper.getErrorCode();
}

DLLEXPORT string getErrorString_LabVIEW()
{
Wrapper wrapper;
return wrapper.getErrorString();
}

DLLEXPORT unsigned int selectProtocol_LabVIEW(unsigned int protocol)
{
Wrapper wrapper;
return wrapper.selectProtocol(protocol);
}

DLLEXPORT unsigned int getResult_LabVIEW()
{
Wrapper wrapper;
return wrapper.getResult();
}

DLLEXPORT unsigned int getAnswer_LabVIEW()
{
Wrapper wrapper;
return wrapper.getAnswer();
}
}

sowie die Wrapper.cpp :

#include "Wrapper.hpp"


/**
* returns errorcode
*/
int Wrapper::getErrorCode(){

return 5;
}

/**
* returns errormessage
*/
string Wrapper::getErrorString(){

return "hello";
}



unsigned int Wrapper::selectProtocol(unsigned int protocol){

return protocol;
}


unsigned int Wrapper::getResult(){

return 77;
}


unsigned int Wrapper::getAnswer(){
return 55;
}


Angehängte Datei(en)
12.0 .vi  Wrapper_Test.vi (Größe: 13,55 KB / Downloads: 233)

2.0 .dll  IEC60870_DLL.dll (Größe: 10 KB / Downloads: 248)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
DLL einbinden - String - Lars_Tragl - 04.05.2015 11:30
RE: DLL einbinden - String - rolfk - 04.05.2015, 19:24
RE: DLL einbinden - String - Lars_Tragl - 05.05.2015, 07:18

Gehe zu: