Dll für LabView

Gast #884800
Lesenswert?

Hallo,

wie muss ich eine DLL in VS2005 (C++) programmieren, damit sie auf 
anderen Rechnern ausgeührt werden kann. Ich habe eine Anwedung 
geschrieben, die diese  DLL aufruft. Diese funktioniert auf meinem 
Rechner auch einwandfreit, aber nicht auf dem meines Kollegen. Woran 
kann das liegen?

Danke
Gast #884827
Lesenswert?

Hallo,

bei den Beispielen von LabVIEW findest Du ein Beispiel, wie man eine 
entsprechende DLL schreibt.
siehe:
C:\Programme\National Instruments\LabVIEW 8.2\LabVIEW 
8.5\examples\dll\hostname

Gruß
Franz



**************************************
PS:


/* include extcode.h which contains the prototypes for the LabVIEW 
functions */
#include <extcode.h>
#include <stdio.h>
#include <windows.h>


BOOL WINAPI DllMain (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
  {
    return TRUE;
  }


/* This functions gets the computer name and returns it to LabVIEW */
__declspec (dllexport) void MachineName(void *LVHandle)
  {
  char computerName[MAX_COMPUTERNAME_LENGTH+1];
  int  compNameLength = MAX_COMPUTERNAME_LENGTH+1;

  /* Get computer name */
  GetComputerName(computerName, &compNameLength);
  /* Size LabVIEW handle to the correct size */
  DSSetHandleSize(LVHandle, compNameLength + 5);
  /* Copy the string size to the LabVIEW handle */
  **(int32 **)LVHandle = compNameLength ;
  /* Copy the string to the LabVIEW handle */
  sprintf((*(char **)LVHandle)+4,"%s",computerName);
  }

****************************************
Persönliche Seite #884997
Lesenswert?

> Ich habe eine Anwedung geschrieben, die diese  DLL aufruft.
> Diese funktioniert auf meinem Rechner auch einwandfreit,
> aber nicht auf dem meines Kollegen.
> Woran kann das liegen?

Deine DLL wird andere DLLs benötigen, die auf Deinem Rechner installiert 
sind (da ist ja auch Dein Entwicklungssystem drauf) und die auf dem 
Rechner Deines Kollegens fehlen.

Entweder DLLs zur Verfügung stellen oder durch statisches Linken 
vermeiden.
Gast #886581
Lesenswert?

Nun da ich weiß wie man die abhängigen DLL´s ausfindig macht würde ich 
gerne wissen wie ich diese in meine DLL packen kann, sodass ich die 
abhängigen DLL´s nicht immer mitschleppen muss. Hat da vielleicht jemand 
eine Idee?

Vielen Dank schon mal im Voraus
Gast #886641
Lesenswert?

@ Andreas W.
Ja ich schreibe meine DLL in CLI. Auf dem Rechner meines Kollegen ist 
die .NET Runtime installiert. Die DLL muss aber auch auf Rechnern laufen 
ohne die .NET Runtime. Wie mache ich das, wenn ich die DLL trotzdem in 
CLI programmieren muss?
#886681
Lesenswert?

Also erstens ist das nicht CLI sondern CLR
Common Language Runtime
und zweitens geht das nicht. Du kannst nicht eine .NET Anwendung auf
einem Rechner ohne .NET Framework laufen lassen!

Genauso kannst du nicht Java-Code ohne einer Java-Runtime ablaufen 
lassen!

Aber wie kommst du auf .NET?
du hast doch gefragt:
"wie muss ich eine DLL in VS2005 (C++) programmieren"

Ich gehe nicht davon aus, das du managed C++ gemeint hast?!
Gast #887172
Lesenswert?

Also mittlerweile funktionert die DLL auch auf anderen Rechner und wie 
ich es mir gewünscht hatte kann man sie auch in LabView einbinden.
Ich musste eigentlich nur auf Release stellen und die DLL mit dem 
Dependancy Walker durchleuchten um eine fehlende DLL zu erschließen.

Vielen Dank für das Feedback

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren