tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
983
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    daha daha ist offline Mitglied
    Registriert seit
    Jul 2007
    Beiträge
    10
    Hallo,
    ich habe mal wieder ein Problem.

    Ich habe unter XP x86 an Word 2007 über VBA eine DLL angebunden. Das geht ganz gut. Das habe ich auch mit Word 2003 getestet funktioniert auch. Das Problem ist, wenn ich den VBA-Code unter Windows 7 ausführe, kommt eine Fehlermeldung Datei blabla.dll nicht gefunden (Laufzeitfehler 53). Demnach funktioniert der gleiche Code, der unter XP lief unter Windows 7 (32bit) nicht mehr.

    Die Funktionsdeklaration im VBA:
    Code :
    1
    
    Declare Function disconnectClient Lib "TCPClientConnector.dll" () As Long

    Eine absolute Pfadangabe hat unter Win7 auch nicht funktioniert.
    Wenn ich die Sleep-Funktion aus der kernel32.dll deklariere und aufrufe, kommt kein Fehler.

    Ich habe die Dll mit VC6 bzw. VC98 kompiliert, ist glaube ich das gleiche und ist somit eine Win32-DLL.

    Woran kann das liegen? Ich bin jetzt echt am verzweifeln Das liegt doch nicht daran der der VC++-Compile zu alt für Win7 ist oder?

    Besten Dank
    Geändert von daha (11.06.10 um 13:59 Uhr)
     

  2. #2
    daha daha ist offline Mitglied
    Registriert seit
    Jul 2007
    Beiträge
    10
    OK hatte ich selber nicht daran gedacht, dass das eine Rolle spielt. Ich verlinke innerhalb der obenstehenden DLL auf eine weitere DLL, die einen ProgressDialog implementiert.

    Bestandteil des ProgressDialogs sind folgende ActiveX-Steuerelemente:
    • Progressbar (MS Progressbar Control 6.0 (SP6) - aus .../system32/MSCOMCTL.OCX --> existiert auch unter Win7
    • 2 Label (MS Forms 2.0 Label) - aus .../system32/FM20.DLL --> existiert auch unter Win7

    Entferne ich die Verlinkung zu dieser MFC-DLL, findet er auch die TCPClientConnector.dll.
    Die Frage ist nun: Wie kann ich sicherstellen, dass der Progressdialog auf XP, Vista und Win7 läuft. Darf ich da nur bestimmte Steuerelemente verwenden? Oder muss ich bestimmte Dateien mit ausliefern? Wenn ja, welche sind das?

    Da kann doch eigentlich nicht so schwer sein, wenn man nur wüsste wo die Infos stehen?

    Bitte weiterhin um Hilfe!
    Ein Statement, eine Vermutung oder eine Idee wären auch schon hilfreich.

    Danke
     

  3. #3
    daha daha ist offline Mitglied
    Registriert seit
    Jul 2007
    Beiträge
    10
    Nachdem ich die MFC-DLL in eine Win32-Exe eingebunden habe hatte mir Win7 endlich gesagt welche DLL fehler. Es war die MFC42D.dll. Anschließend habe ich statt einer Debug-DLL eine Release-DLL erstellt und siehe da es funktioniert.

    Selbst ist der Mann. Ich hoffe die Monologe helfen auch jemand anderem ...

    Gruß, daha
     

  4. #4
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Für die Zukunft böte sich für solche Sachen auch der Dependency Walker an
     

  5. #5
    daha daha ist offline Mitglied
    Registriert seit
    Jul 2007
    Beiträge
    10
    OK hatte ich auch gerade entdeckt. Jedoch hätte ich mir gewünscht, dass VBA seine Fehlermeldung etwas präziser formuliert hätte.

    Danke fürs Feedback.
     

Ähnliche Themen

  1. DLL wird nicht gefunden
    Von Va7e im Forum .NET Application und Service Design
    Antworten: 1
    Letzter Beitrag: 25.11.09, 20:59
  2. web Projekt wird nicht gefunden
    Von Johannes7146 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 7
    Letzter Beitrag: 26.02.08, 11:45
  3. dll wird nicht gefunden
    Von jokey2 im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 15.11.05, 09:26
  4. php_mysql.dll wird nicht gefunden
    Von bled im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.12.04, 21:50
  5. CD-Rom wird nicht in 98 gefunden!
    Von Potestas im Forum Hardware
    Antworten: 0
    Letzter Beitrag: 28.09.04, 13:24

Stichworte