Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VBA mit Excel findet die DLL nicht

Empfohlene Antworten

Hallo, ich bin neu hier und bräuchte einwenig Hilfe.

Also, es geht um folgendes. Ich mache grad ein Projekt für die Schule und ich möchte eine Relaiskarte mit einem kleinen Programm ansteuern.

Mein Problem ist, dass mein Programmcode die DLL nicht findet. Hab mal ein Screenshot gemacht(als Anhang).Kann das vielleicht an der Office Version hängen?

Bin für jede Antwort schon mal im vorraus dankbar.:)

post-44726-14430447741168_thumb.jpg

mattuserusb.dll klingt für mich nach einer nicht unbedingt mit office oder windows mitgelieferten DLL - ist das diejenige, die du selbst erstellt hast?

du hast schon nachgesehen, ob die DLL als add-in oder über API-aufruf geladen wird und der versuch fehlschlägt? wie sehen die *relevanten* codezeilen aus, über die du die DLL einbindest? irgendwo sagst du ja deinem VBA modul sicherlich, dass genau diejenige DLL verwendet werden soll.

Kann das vielleicht an der Office Version hängen?

IMHO unwahrscheinlich.

s'Amstel

Hallo Amstelchen,

danke erst mal für deine Hilfe.

Nein die dll Datei habe ich nicht selbst erstellt, die war bei der Relaiskarte dabei.

Und wo kann ich das nach lesen ob die DLL als add-in oder über API-aufruf geladen wird?

Declare Sub setrelais Lib "mattuserusb.dll" (ByVal ch As Byte)

Declare Function getrelais Lib "mattuserusb.dll" () As Integer

Und wo kann ich das nach lesen ob die DLL als add-in oder über API-aufruf geladen wird?

das zeigt dir dein codeausschnitt. Declare ... Lib ... ist der aufruf, um in der mattuserusb.dll ausgelagerte funktionen einzubinden.

ich vermute jetzt nur mehr, dass deine datei *nicht* in einem der verzeichnisse liegt, in dem sie gesucht wird, darunter %SYSTEMROOT% und/oder %SYSTEMROOT%\system32. kopier sie mal dorthin und berichte.

s'Amstel

ja das hatte ich schon im System32 probiert aber er bringt immer den gleichen Fehler. Ich habe auch schon mit dem Hersteller der Karte telefoniert und ihm mein Test-Code zugeschikt und bei ihm funktioniert alles! (mit office 2002)

wobei ich es schon mit allen Versionen versucht habe.

ist dein systemroot bzw. dein system32 im PATH gespeichert?

hast du versucht, bei der angabe der DLL den speicherpfad anzugeben?

s'Amstel

sorry was ist ein PATH?(kenne mich nicht soo gut aus)

Ja den Speicherpfad habe ich auch schon probiert anzugeben!

dein systempfad, in dem ausführbare dateien gesucht werden.

wenn du auf der kommandozeile "echo %PATH%" oder "set" eingibst, wirst du wissen, was ich meine.

s'Amstel

in welcher Komandozeile???:upps

:D

deine eingabeaufforderung, der prompt, die shell.

start > ausführen: cmd

start > programme > zubehör > eingabeaufforderung

c:\windows\system32\cmd.exe

s'Amstel

cool das war schnell.

und was kann ich jetzt hier rauslesen?

dein systempfad, in dem ausführbare dateien gesucht werden.

soll heissen, wie oben beschrieben, schau nach, ob die DLL in der system32 auch gesucht wird, nachdem du sie dort hineinkopiert hast.

s'Amstel

ja das system32 ist im PATH gespeichert!

ok. zwei alternative wege/ideen:

- du lädtst dir dependency walker und lässt die excel.exe durch den profiler laufen. fehlende verweise auf die DLL werden im log angezeigt.

- ist die DLL überhaupt über API aufrufbar? hast du dazu die dokumentation konsultiert? denn möglicherweise ist das eine activex-DLL und sie mus in der liste der verweise eingebunden werden.

s'Amstel

-wie kann ich die DLL über API abrufen?

-bei diesem Programm bringt er mir den Fehler:NO DOS or PE signature found. This file is not a valid 32-bit or 64-bit Windows module.

-wie kann ich die dokumentation konsultieren?

ich habe es jetzt hinbekommen, aber nur auf meinem anderen rechner bei dem ich mittlerweile alle Office versionen probiert habe und bei der Xp Version gehts aufeinmal:upps

Hab ich jetzt die möglichkeit das es auch mit Office 2003 läuft?

-wie kann ich die DLL über API abrufen?

das tust du ja was ich so gesehen habe bereits. woher hast du den aufruf, stand der in einer README?

-bei diesem Programm bringt er mir den Fehler:NO DOS or PE signature found. This file is not a valid 32-bit or 64-bit Windows module.

welche datei hast du im DW geladen? wenn du die DLL profilest, und das ist eine 16bit-DLL, kann das schon vorkommen. das wäre dann z.t. auch die erklärung, warum sie windows nicht finden kann.

-wie kann ich die dokumentation konsultieren?

ich hab mich wohl unklar ausgedrückt. ich meinte die der DLL bzw. der relaiskarte beigepackte anleitung, diskette, README, wasauchimmer.

mühsam ernährt sich das eichhörnchen.

s'Amstel

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.