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 

DLL ohne Header



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!

20.10.2011, 09:02 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2011 09:04 von M@rRy.)
Beitrag #1

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
DLL ohne Header
Moin,

ich habe eine DLL mit der ich arbeiten möchte, mir fehlt dazu aber der Header, ich kenne also die enhaltenen Funktionen und deren Übergabeparameter nicht. Wenn ich sie so in LV einbinde habe ich schonmal die Möglichkeit die Funktion auszuwählen. Wie oder woher bekomme ich nun die Parameter? Gibt es da irgendwie eine Möglichkeit? (Ich bin mir dessen bewusst das man eine DLL nicht öffnen kann, das wäre zu einfach)

Gruß
Daniel

Edit: Ups, hab mich im Unterforum verklickt, bitte verschieben!

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2011, 09:08
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DLL ohne Header
Hallo Daniel,

einfach den Programmierer der DLL fragen? Der sollte es schließlich wissen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2011, 09:11
Beitrag #3

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: DLL ohne Header
Ja ... das is mir klar, geht aber um eine Windows DLL. Mcirosoft verät aber nicht so wirklich viel darüber.

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2011, 09:13
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DLL ohne Header
Hallo Daniel,

wenn µSoft nicht soviel darüber verrät, werden sie ihre Gründe dafür haben (heißt: die DLL ist quasi "privat"). Oder du hast nicht tief genug im MSDN gebuddelt Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2011, 09:20
Beitrag #5

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: DLL ohne Header
Ja aber kann man das nicht mittracen oder sowas? Also ich kann die DLL über ein VB-Skript aufrufen, jetzt müsste ich mir nur noch die Kommunikation zwischen diesem Skript und dem DLL Aufruf an sich beobachten. GIbt es dafür nen Tool? Ich weiß das Excel zumindestens VB beherrscht... betonung liegt dabei allerdings auf "Excel beherrscht das".

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2011, 09:22
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DLL ohne Header
Hallo Daniel,

ich glaube, es wird Zeit, dass du uns den Namen dieser µSoft-DLL nennst und würde damit an den DLL-Spezialisten rolfk übergeben Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.10.2011, 09:23
Beitrag #7

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: DLL ohne Header
Es geht um die w3svc.dll die ich momentan nur über das adsutil.vbs (und das über das cscript) öffne.

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2011, 07:56
Beitrag #8

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: DLL ohne Header
Gibt es vielleicht die Möglichkeit via .NET auf die Klassen der DLL zu zugreifen, solange diese public sind natürlich?

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:43 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2011 08:49 von rolfk.)
Beitrag #9

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL ohne Header
(20.10.2011 09:23 )M@rRy schrieb:  Es geht um die w3svc.dll die ich momentan nur über das adsutil.vbs (und das über das cscript) öffne.

Also grundsätzlich gibt es keine Möglichkeit um eine DLL anzurufen, von der man nicht zumindest die Funktionsinterfaces kennt. Die einzige Art und Weise um diese Informationen zu erhalten, wenn man keine Dokumentation oder Header dazu hat, ist die DLL zu dissassemblieren. Das ist ein ziemlich arbeitsintensiver Prozess und im Zeitalter der Informationsfreiheit meistens auch eine illegale Aktion. Zumindest fúr jemanden der in Amerika wohnt oder in nächster Zeit dorthin reisen möchte ist davon nur abzuraten. Cool

Das alles gesagt ist natürlich auch der Nutzen abzuschätzen. Undokumentierte DLL Interfaces sind dies manchmal aus Konkurrenzüberlegungen, aber Microsoft wird sich in dieser Hinsicht wohl etwas zurückhalten da solche Machenschaften in der Vergangenheit ziemlich schwer bebüsst wurden. Ein anderer und viel häufiger vorkommender Grund ist dass das Interface privat ist, weil es kein festes Interface ist, sondern konstant verändern kann. Da es privat ist kann man das tun ohne andere Programmierer zu verärgern. Hat ein Aussenstehender dieses Interface reverse engineered dann hat er halt einfach Pech gehabt.

In diesem spezifischen Fall geht es um eine DLL die Bestandteil der Internet Information Services ist und einen Service implementiert. Ein Service hat meist kein klassisches DLL Interface, sondern wird über COM/DCOM angesprochen. Das sieht man bei einer DLL auch daran, dass DLLRegisterServer() und DLLUnregisterServer() exportiert sind. COM/DCOM ist die Technologie auf der ActiveX aufgebaut ist, aber ist nicht genügend um eine DLL als ActiveX Componente anzusprechen. Das heist das Interface dieser DLL ist NUR durch ein C/C++ Program anzusprechen und auch dann nur wenn man die entsprechenden Interface Definitions (meist IDL Files und daraus generierte C Headers und RPC Proxy Source Files) hat. Diese werden üblicherwiese in einem entsprechendem SDK geliefert, so sie nicht Bestandteil des Microsoft Platform SDKs sind. Oder auch nicht, wenn die DLL als Teil eines grösseren Ganzen aufgefasst wird, das die Funktionen mittels eines übergeordneten Interfaces zur Verfügung stellt.

Die einzigen anderen Funktionen die von dieser DLL exportiert werden sind C++ Objectmethoden, etwas das man mit der LabVIEW Call Library Node grundsätzlich nicht gut aufrufen kann.

Also kann man zusammengefasst sagen: Direkt ansprechen dieser DLL von LabVIEW aus ist ein sinnloses Unterfangen. Sehr wahrscheinlich stellt Microsoft Teile der Funktionalität mittels eines ActiveX Interfaces in einer höher liegenden Komponente zur Verfügung. Welche das ist kann ich Dir nicht sagen, aber es hat sicher mit Internet Information Services (IIS) zu tun. Auch möglich ist das dieser Service nicht nur über ein ActiveX Interface sondern auch über ein Funktions-API ansprechbar ist. Dieses API würde aber meistens ebenfalls durch eine andere Komponente bereitgestellt und nicht die Service DLL selber.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:49
Beitrag #10

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: DLL ohne Header
Wow vielen Dank für diese ausführliche Erläuterung, ist immer wieder interessant und lehrreich deine posts zu lesen und zu verstehen! Danke Rolf und natürlich auch Gerd Smile

Gruß
Daniel

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DLL Import externe Struktur in Header bekommen hansi9990 15 24.483 30.09.2016 17:20
Letzter Beitrag: hansi9990
  Header nicht LV Kompatibel? hansi9990 5 8.848 02.05.2015 19:38
Letzter Beitrag: hansi9990
  DLL einbinden ohne Header Datei ringfahrer 6 11.703 03.12.2009 16:22
Letzter Beitrag: jg
  externe Header-Files in DLL einbinden Honeygirl24 7 9.075 15.10.2008 21:24
Letzter Beitrag: jg

Gehe zu: