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:

Labview Import / DLL debuggen



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!

22.08.2014, 22:31
Beitrag #1

galilio Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 175
Registriert seit: Mar 2014

2015
2013
EN


Schweiz
Labview Import
Hallo alle zusammen,


ich habe einen dummy c++ DLL projekt mit Visual studio erstellt um einfach einen Library Import in labview auszuprobieren.

das Erstellen von C++ DLL projekt lauft genau wie geschmiert. Daraus habe ich einen Wrapper geschrieben, die nicht anders macht als die dummy Klasse zu Wrappen:

Hier bei ist meine Versuch:
****das C++ Teil:

* header File:
class MyClass
{
public:
MyClass(double, double);
~MyClass();
double Add(double,double );
double Subst(double, double);
double Mult(double, double);
double Divid(double, double);
private:
double m_a, m_b;
};

*CppFile:


#include "stdafx.h"
#include "MyClass.h"


MyClass::MyClass(double a,double b)
{
this->m_a = a;
this->m_b = b;
}

MyClass::~MyClass(){ }

double MyClass::Add(double a, double b)
{
return (a + b);
}
double MyClass::Mult(double a, double b)
{
return (a * b);
}
double MyClass::Subst(double a, double b)
{
return (b - a);
}
double MyClass::Divid(double a, double b)
{
return (b / a);
}

**--> Das Wrapper sieht so aus
Header File:

#pragma once
#include "MyClass.h"
#define DLLIMPORT __declspec (dllexport)
#ifdef __cplusplus
extern "C" { /* using a C++ compiler */
#endif
typedef struct Wrapper
{
void *MYClass;
}Wrapper;

DLLIMPORT Wrapper createWrapper(double a, double b);
DLLIMPORT void destoryWrapper(Wrapper LV_ref);
DLLIMPORT double Add(Wrapper LV_ref, double a, double b);
DLLIMPORT double Subst(Wrapper LV_ref ,double a, double b);
DLLIMPORT double Mult(Wrapper LV_ref,double a, double b);
DLLIMPORT double Divid(Wrapper LV_ref, double a, double b);





#ifdef __cplusplus
}
#endif


*** Wrapper cpp File
#include "C_DllWrapper.h"


DLLIMPORT Wrapper createWrapper(double a, double b)
{
Wrapper wrapper = {static_cast<void*>(new MyClass(a,b)) };
return wrapper;
//new MyClass(a,b);
}

DLLIMPORT void destoryWrapper(Wrapper LV_ref)
{
MyClass *myClass = static_cast<MyClass*>(LV_ref.MYClass);
delete myClass;
}
DLLIMPORT double Add(Wrapper LV_ref, double a, double b)
{
MyClass *myClass = static_cast<MyClass*>(LV_ref.MYClass);
return myClass->Add(a, b);
}

DLLIMPORT double Mult(Wrapper LV_ref, double a, double b)
{
MyClass *myClass = static_cast<MyClass*>(LV_ref.MYClass);
return myClass->Mult(a, b);
}

DLLIMPORT double Subst(Wrapper LV_ref, double a, double b)
{
MyClass *myClass = static_cast<MyClass*>(LV_ref.MYClass);
return myClass->Subst(a, b);
}

DLLIMPORT double Divid(Wrapper LV_ref, double a, double b)
{
MyClass *myClass = static_cast<MyClass*>(LV_ref.MYClass);
return myClass->Divid(a, b);
}

--> so weit so gut .

Ich kann daraus das DLL File erzeugen.
Ich habe dann mit Labview einen DLL Import durchgeführt.
Ich bekomme auch keinen Fehlermeldung.

--> hier ist das Problem:

bei einen einfache Test der funktionen bekomme ich einen komischen Ergebnisse:
wie z.B bei einen einfache Addition von zwei werte von type double
add(1,2) ich bekomme als Ergebnis 2,28614E-253
bei Multiplikation von 1*2 oder 2*3 oder ... = 0 (Ergebnis ist immer einen 0).

die lösung ist bestimmt einfach aber ich weiss es nicht was und wo ich in Labview was einstellen muss .



Für jeden Vorschlag danke ich euch in voraus.

besten Grüsse
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Labview Import - galilio - 22.08.2014 22:31
RE: Labview Import - galilio - 24.08.2014, 08:09
RE: Labview Import - jg - 24.08.2014, 08:43
RE: Labview Import - galilio - 24.08.2014, 10:09

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  USB Relay DLL import hansi9990 3 10.267 02.09.2019 09:15
Letzter Beitrag: hansi9990
  DLL Import externe Struktur in Header bekommen hansi9990 15 24.718 30.09.2016 17:20
Letzter Beitrag: hansi9990
  aus einem Library Import Installer machen galilio 5 13.155 04.04.2016 09:32
Letzter Beitrag: galilio
  DLL Import automatisieren CS 3 8.111 13.02.2015 10:53
Letzter Beitrag: CS
  Import Assistent findet Funktionen nicht TDO 1 5.669 11.12.2014 16:24
Letzter Beitrag: jg
  dll Import richtig verstanden? Gruenschnabel 6 8.350 19.09.2014 10:25
Letzter Beitrag: DATAAHEAD

Gehe zu: