2016-09-03 4 views
0

Kürzlich aktualisiert auf einen neuen PC mit Win 10 pro, Excel 2016 mit Office365, vs2015-Community. Erstellt eine sehr einfache vC++ DLL mit nur einer Funktion, die in der def Datei exportiert wurde. Der Code ist sehr einfach, würde aber trotzdem hier posten, um einen Inhalt zu geben und sicherzustellen, dass es dort kein Problem gibt.Excel 2016 VBA fehlgeschlagen Aufruf vs2015 C++ dll

//also tried __declspec(dllexport) double sumCPP(double a, double b) without .def file 
double __stdcall sumCPP(double a, double b) 
{ 
    return a + b; 
} 

'VBA 
Public Declare PtrSafe Function sumCpp Lib "C:\MyTestProject\x64\Debug\DllTest.dll" (ByVal a As Double, ByVal b As Double) As Double 

Aber ein Anruf von VBA führt Laufzeitfehler '48': Datei nicht gefunden: C: \ MyTestProject \ x64 \ Debug \ DllTest.dll.

Der Quellcode eines komplizierter DLL-Projekt kann erstellt werden, um exe, das läuft gut, aber who dll aufgefordert, dieses ursprüngliche Fehler beim Aufrufen von DLL-Problem. Irgendwelche Vorschläge, wo man hinschauen? Ich habe depand.exe mit vielen vermeintlich falschen Alarmen und Dumpbin/Abhängigen versucht, aber nicht klar, wie man das Ergebnis benutzt. Ich frage mich, ob dies mit einigen verteilbaren vs2015 nicht im System PATH verwandt ist. Ich sehe dort keine, habe aber noch nicht versucht, sie hinzuzufügen, da es zu viele zu sein scheinen.

Gibt es eine andere Option, schwere Berechnung und TCP/IP-Socket neben der Verwendung von VC++ dll zu delegieren? Ich weiß es nicht, kann aber C# betrachten, während Python bevorzugt würde. Da diese DLL-Funktionen häufig in VBA aufgerufen werden sollen, scheint ein Systemaufruf für vC++ exe nicht effizient zu sein.

Vielen Dank im Voraus!

+0

1. Testen Sie die DLL auf der Maschine 2. Verwenden Sie Release-Modus entwickeln, da die Funktion Signatur unterscheidet 3.Check dies: Excel ist x64 und dll ist x86? oder Excel ist x86 und dll ist x64? – neohope

Antwort

0

Da die Maschine neu ist, setze ich es alle Daten entfernen. Dann habe ich Office 2016 64bit und VS Community 2015 von Grund auf neu installiert und die 64bit dll wieder aufgebaut. Diesmal ist der Fehler Laufzeitfehler '453' DLL-Einstiegspunkt kann nicht gefunden werden. Kann keine offensichtliche fehlende abhängige DLL durch dumpbin.exe/abhängige oder depends.exe finden.

0

Versuchen Änderung Build-Konfiguration von „Debug“ auf „Release“

+0

Und stellen Sie sicher, dass Sie vsruntime140.dll in SysWow64-Ordner haben – user7856785

Verwandte Themen