2017-09-05 3 views
1

Ich benutze C++, um Xll-Plugins für Excel zu erstellen, mit Hilfe von xlw. Es funktioniert gut auf meinem PC und einige Nutzer, aber in einigen anderen Benutzern, wenn ich die xll in ein neues Excel-Fenster ziehen, wird der Fehler kommt:Strange Excel xll Plugin-Fehler

Die Datei, die Sie versuchen, zu öffnen, ‚my_plug_in. xll ', ist in einer anderen fromat als durch die Dateierweiterung angegeben. Stellen Sie sicher, dass die Datei nicht beschädigt ist und vor dem Öffnen der Datei von einer vertrauenswürdigen Quelle stammt. Do Sie möchten die Datei jetzt öffnen?

Wenn Klick ja, Excel wird die xll als Textdatei öffnen zeigt etwas wie

„MZÿÿ¸ @ Í! Li! Dieses Programm kann nicht im DOS-Modus ausgeführt werden.“

in der ersten Zeile. Dies ist nicht zu erwarten.

Was könnte der Grund sein? Das Betriebssystem sind alle Windows 7 Professional, 64bit, die Excel sind alle Excel 2010 (32-Bit).

+0

eine fehlende externe DLL oder Runtime DLL? hast du mit der MT-Flagge gebaut? Können Sie mit DLL-Abhängigkeit überprüfen? Außerdem benötigen Sie eine x86 xll für Excel 32 Bit und eine x64 xll für Excel 64 Bit. – Malick

+0

Ich habe herausgefunden, dass ich unter MT gebaut habe, aber versehentlich mit einer Lib verbunden war, die in MD verwendet werden sollte. Aber warum können einige Benutzer es nicht benutzen? – athos

+1

Ok, ich denke, dass für die Benutzer, für die es funktioniert, sie die lib von einer anderen Software installiert haben müssen. – Malick

Antwort

1

Um es zusammenzufassen, um den Fehlercode: „Dieses Programm kann nicht im DOS-Modus ausgeführt werden“ in der Regel auf eines dieser Probleme verwandt ist:

  • die xll mit der/MD-Flag aber Endnutzer tun gebaut nicht die erforderliche CRT dll haben.
  • falsche Architektur der xll (ex: x64 xll für Excel 32 Bits).
  • eine fehlende externe DLL.
  • eine externe DLL, die mit dem Flag/MD erstellt wurde. In diesem Fall gibt es kein Problem, wenn Endbenutzer die richtige Version des CRT (der, der zum Erstellen dieser externen DLL verwendet wurde) haben. Andernfalls wird es nicht funktionieren. Ich denke, das ist dein Fall. Ich empfehle Ihnen dringend, Ihre externe DLL (wenn möglich) mit dem/MT-Flag neu zu erstellen, oder besser, Ihre Xll mit der statischen .lib-Datei der Drittanbieter-Komponente direkt zu verknüpfen.