![]() |
Visual C++ 2005 Express
Hallo Helferleins.
Dieses Tool wurde von MiSoft vor einiger Zeit gratis verteilt, damals konnte man sich noch die CD-Images herunterladen. Ich habe ein kleines Programm damit erzeugt, es funktioniert gut. Das Tool ist bestens für kleinere und mittlere Anwendungen geeignet. Aber nun kommts: Das Programm läuft nicht auf einem anderen PC oder Partition auf der das Tool nicht installiert ist. Es gibt zwar ein sog. Redistribution-Set, das man installieren kann, aber für VC++ 2005 (nicht -Express, also nicht das Gratistool). Aber auch damit funktioniert es nicht. Ohne das Redistribution-Set sagt das Windows - sinngemäss: Die Anwendung ist nicht richtig installiert, ... neu installieren; mit dem Redistribution-Set sagt Windows - sinngmäss: die Anwendung kann nicht initialisiert werden. Wer hat schon Programme, die mit diesem VC++2005Express programmiert wurden, auf einen anderen PC funktionsfähig übertragen, und wie macht man das? Anmerkung: für VB2005Express gibt ein die Möglichkeit ein "Setup.exe" zu erzeugen, mit dem das Programm installiert wird, für VC++2005Express leider nicht (so wie auch in VC++6.00; hier kann man aber die notwendigen DLL's mitbinden). Wer weiss Rat? Oder weiss vielleicht jemand wie man die notwendigen DLL's mit dem VC++2005Express mitbindet? Mit bestem Dank für Tips. Stz. |
ist das .net Framework in mind. der Version welche du am PC auf welchem du dein Programm umgewandelt hast, installiert?
pong |
Du könntest mit dem Dependency Viewer herausfinden, welche Dlls benötigt werden und diese einfach mit ins Verzeichnis kopieren.
Oder habe ich die Frage da falsch verstanden? Ansonsten sollte ein VC++ Express Programm ganz normal auf anderen Rechnern laufen. Was ist die genaue Fehlermeldung? |
An Pong:
Ich kann nicht nachvollziehen, was das mit dem .net Framework zu tun hat. Das Programm hat nichts mit Internet zu tun. An delphirocks: Ich habe mit dem Dependency Viewer hineingeschaut: Da kommen so viele Daten herraus, ich weiss leider nicht welche DLLs nun wirklich fehlen. Eine DLL ist rot gekennzeichnet und im Protokoll als fehlend ausgewiesen, die MPR.DLL. Aber genau diese ist sowieso unter C:\Windows\System32 zu finden. Ich habe sie versuchsweise trotzdem ins gleiche Verzeichnis mit meinem Programm einkopiert, die Fehlermeldung ändern sich nicht. Und so viele DLLs wie der D-Viewer anzeigt können doch nicht fehlen. Sie sind auch alle grau gekennzeichnet. Heisst das, sie fehlen nicht? Anbei meine Fehlermeldungen: 1. Ohne das VCRedist_x86.exe: Oberes Bild. 2. Mit dem VCRedist_x86.exe: Unteres Bild. Noch ein Hinweis: Das BS ist Windows XP-Prof mit SP1 und SP2 (sonst würde das Visual Studio 2005 Express nicht laufen). Wo kann der Fehler liegen? Danke für die bisherige Hilfe Stz. |
Anscheinend ist das Bild verloren gegangen.
Hier versuche ich es nochmals anzuhängen. Stz. |
Zitat:
pong |
Wie lautet die Fehlermeldung im unteresten Fenster des Dependency walkers?
Wenn die Meldung "Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module." lautet, dann heißt das nicht, daß die Dll komplett fehlt, sondern nur daß eine Funktion aus besagter Dll nicht exportiert wird, die aber von irgeneiner Parent Dll benötigt wird. Wahrscheinlich passen die Dll-Versionen einfach nicht zusammen. Wie sieht das Ganze auf deinem Entwicklungsrechner aus? Probier einfach mal die "MBR.dll" deines Entwicklungsrechners über die ausgelieferte MBR.dll zu kopieren. |
Genau so lautet die Fehlermeldung des Dependency-Viewers auf dem System, auf dem das Programm funktioniert, also mit installiertem VC++. Wie die Fehlermeldung auf dem anderen System, ohne VC++ lautet ist aus dem angehängten Bild ersichtlich.
Die beiden MPR.DLL sind aber identisch (mit FC überprüft). Woran kann es noch liegen? Stz. Ich habe das Bild etwas verkleinern müssen, weil es sich sonst nicht einfügen lässt. |
Naja, das "unresolved import" heißt jedenfalls, das die benötigte Funktion von der Dll nicht exportiert wird.
Bist du sicher,daß du die richtige kopiert hast. D.h. er nimmt höchstwahrscheinlich die falsche dll her. Wie du die side by side Geschichte konfigurieren kannst, weiß ich auch nicht. Da müßtest du mal auf der MSDN Seite nachsehen.... |
hi,
grundsätzlich sollte die geannte dll im windows\system32 Verzeichnis liegen - du must da in deinem programm nix "dazubinden". Kannst du das Prog. hier reinstellen? Dann kann ich's ggf mal ausprobieren. (als test, ob es auf anderen rechnern funktioniert) Zum Testen ist es empfehlenswert z.B. den freien virtual pc 2007 (von MS) downzuloaden und dort programme auszuprobieren - dann brauchst du keinen 2. test pc. grundsätzlich erstellt VS Express "dieselben" Programme wie VS Professional - und solche Programme wurden schon öfter ausgeliefert + funktionieren auch auf anderen PC's - manchmal ;) - wenn nicht, hätte wohl keiner der SW Entwickler eine Arbeit. fg hannes |
Du kannst das Programm mal posten wenn du willst, dann probier' ich's mal bei mir aus.
|
@delphirocks:
Bitte um Deine Emailadresse per PN. Danke Stz. |
@stz: (das ist nicht dein richtiger name, oder?) - wie bereits geschrieben, ich würde dir auch anbieten, es zu testen - wie du willst.
Kannst es als .zip hier einfügen, oder falls du das nicht möchtest, mir als PM schicken. fg hannes |
Hallo Heinz,
Ich antworte in diesem Fall nicht via PM, sondern direkt hier im Forum, damit andere, welche ähnliche bzw. das selbe Problem haben ggf. davon profitieren können. Ich konnte nach einigen Problemen dein Programm ausführen - aber alles der Reihe nach... Gleich nach dem Starten wurde die Fehlermeldung: Activation context generation failed for "C:\wcm_prog\Memo2005.exe". Dependent Assembly Microsoft.VC80.CRT,processorArchitecture="x86",pub licKeyToken="1fc8b3b9a1e18e3b",type="win32",versio n="8.0.50727.762" could not be found. Please use sxstrace.exe for detailed diagnosis. ins Eventlog eingetragen. Eine Suche in Google brachte keine Lösung, nur den Hinweis (auf http://forums.microsoft.com/MSDN/Sho...20178&SiteID=1), man solle doch folgendes machen: Copy *80.dll and *80d.dll files in Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.Deb ugCRT to someplace where your debug exe can see them. Das hab ich dann gemacht, also folgende Dateien in das Programmverzeichnis kopiert: Microsoft.VC80.CRT.manifest msvcm80.dll msvcp80.dll msvcr80.dll Nach einem weiteren Programmstart wurde nun folgende Fehlermldung ins Eventlog eingetragen: Activation context generation failed for "C:\wcm_prog\Memo2005.exe".Error in manifest or policy file "C:\wcm_prog\Microsoft.VC80.CRT.MANIFEST" on line 11. Component identity found in manifest does not match the identity of the component requested. Reference is Microsoft.VC80.CRT,processorArchitecture="x86",pub licKeyToken="1fc8b3b9a1e18e3b",type="win32",versio n="8.0.50727.762". Definition is Microsoft.VC80.CRT,processorArchitecture="x86",pub licKeyToken="1fc8b3b9a1e18e3b",type="win32",versio n="8.0.50608.0". Please use sxstrace.exe for detailed diagnosis. Ursache dafür ist die sog. Side by Side Execution. Um die "Dll Hell" zu lösen bzw. zumindest zu entschärfen, wurde von MS das Modell entwickelt, dass eine Applikation fix mit einer bestimmten Version einer Dll verbunden werden kann. Das verhindert das Problem, das nach dem Update der Dll durch eine neuere Version plötzlich Programme nicht mehr funkionieren, weil sich im Code der Dll etwas geändert hat. => Das war die sog. "Dll Hell" ;) Der Update einer Dll war somit immer potentiell gefährlich, weil man nie wusste, ob bisherige Programme mit der neuen Version der Dll funktionieren - deshalb konnte man nun ein Assembly Manifest erstellen, in welchem festgelegt wurde, dass das Programm FIX eine bestimmte Version der Dll benötigt. (Man kann auch festlegen, dass automatisch neuere Versionen verwendet werden soll u.a.) Na jedenfalls hab ich mir's dann einfach gemacht und das Manifest geändert (da ich die angeforderte Version 8.0.50608.0 nicht habe). Inhalt der geänderten Manifest Datei: PHP-Code:
version="8.0.50608.0" auf version="8.0.50727.762" geändert. Nach den Start des Programmes wird eine MessageBox mit der Meldung: "Morgen am 12.3.2007: Test." ausgegeben. hoffe, das hilft dir + fg Hannes |
@Biri
Alle Achtung, das hätte ich wohl nie herausgefunden. So sollte es auch funktionieren. Aber leider funktioniert es bei mir noch immer nicht. Ich habe die 3 DLLs sowie Deinen Text für ein Manifestfile in ein solches geschrieben mit dem angegebenen Namen. Auf meinem PC habe ich ein File mit diesem Namen nicht gefunden. Das ganze auf einem System ohne VS2005-Installation. Ergebnis: Wieder die Fehlermeldung mit dem Text "...kann nicht initialisiert werden.". Dann habe ich dieses Verzeichnis auf meinen Laptop mit dem Internetzugang kopiert (mit diesen Dateien). Dort ist eine WinXP-Home-Instalation. Die Fehlermeldung lautete dann (siehe Bild). Es wir anscheinend ein Framework V2 benötigt, das im WinXP Professional enthalten ist. Ich hätte das Programm gerne portierbar gemacht auch auf PC's ohne Framework. Hier gibt es mit den VS2005 anscheinend neue Regeln. Bei VS6.0 war das noch einfach. Da konnte mann die DLLs statisch ins Programm dazu linken und das Programm war einfach durch kopieren portierbar. Das statische dazulinken schein auch im VS2005 möglich zu sein, lt. Hilfe, aber ich konnte die Einstellungen dazu nicht finden. Hast Du noch neue Ideen wie man das bewerkstelliegen könnte? |
Hallo,
Diese Fehlermeldung sagt aus, dass dein Programm das .net Framework 2.0 verwenden möchte, auf dem PC auf dem es gestartet wurde aber nicht finden kann. Das .net Framework wurde von Microsoft entwickelt, um die Windows Programmierung zu vereinfachen (imho. erfolgreich). Es bildet einen objektorientierten Layer über die Win API, geht dabei aber viel weiter wie z.B. MFC oder ATL. .net ist keine Programmiersprache, sondern definiert eine Infrastruktur, welche von einer .net Sprache erfüllt werden muss (z.B. C#, VB.NET) - Der Compiler von .net Sprachen erzeugt IL Code (intermediate Language) usw. usw. - ein umfangreiches Thema das ich hier jetzt nicht in allen Details erläutern kann. Jedenfalls KANNST du in deinem mit Visual Studio 2005 erstellten Programm die .net Runtime verwenden (.net Runtime sind in Wahrheit einige Dll's - diese werden unter .net als Assemblies bezeichnet - sie enthalten im Gegensatz zu "normalen" Dlls auch noch Metadaten). Wenn du diese .net Runtime verwendest, muss auf dem PC auf welchem das Programm installiert wird dann auch die .net Runtime (= das .net Framework) installiert werden. Beim XP SP2 war .net dabei, allerdings nicht die Version 2.0 - diese ist nur bei Windows Vista von haus aus mitinstalliert. Du hast also die Möglichkeiten: - Auf allen PC's die dein Programm verwenden möchten die .net Runtime zu installieren - In deinem Programm die .net Runtime nicht zu verwenden und C++ Programme "wie bisher" zu schreiben. Ich tendiere zu Möglichkeit 1, weil es das Programmieren enorm vereinfacht, es kommt aber immer auf deinen Anwendungsfall an. Wenn du die .net Runtime nicht benötigst oder du weißt, dass sie auf den PCs deiner Kunden (warum auch immer) nicht installiert wird, musst du ohne dieser auskommen. Du musst dann halt im Visual Studio den entsprechenden Projekttypen auswählen - also z.B. Other Languages - C++ - ATL/MFC/Win32 Zitat:
Zitat:
Zitat:
Das Deployment wurde unter .net stark vereinfacht - suche mal nach "Click once deployment", ev. wäre das was für dein Programm. Dabei wird ein Setup erstellt welches Prüft, ob es am PC auf dem installiert wird bereits das .net Framework gibt und dieses ggf. installiert. Man kann es dann auch so konfigurieren, dass automatisch auf einem Server nachgeschaut wird, ob es eine neue Programmversion gibt, welche dann beim Start des Programmes automatisch zum Client übertragen wird u.v.a. In einem Punkt geb ich dir aber recht: Seit VC 6.0 hat sich einiges getan. fg hannes |
VC++ 2005 Express
Hallo Helferleins!
Weiss den niemand wie man ein, mit diesem Tool erzeugtes Programm auf andere PCs portieren kann? Am besten durch einfaches Kopieren, oder auch mit entsprechenden Redistributionsets. Das eine Redistributionset, das es bei MiSoft gibt reicht nicht ganz. Oder ist die Gratisversion "Visual Studio 2005 Express" so eingeschränkt, dass ein Portieren verhindert wird? Wer weiss etwas darüber? Oder wer kennt eine Lösung für dieses Problem? Viele Dank. Stz. |
hi,
wo liegt denn nun das Problem? Ich hab ja genau das gemacht - hab mir dein Programm auf meinen Rechner kopiert, zum laufen gebracht und beschrieben, wie es geht. Also quasi ein XCopy Deployment. Man könnte auch ein Setup Projekt erstellen - wobei ich hier nicht weiß, ob das mit Visual Studio Express funktioniert (Mit Standard Edtion geht das). fg hannes |
Mein ernstgemeinter Rat wäre:
Nimm Delphi oder den C++ Builder. Gibt's beide in einer Gratisversion. Beide sind zwar aufgrund der .NET und MSXML Prerequisites etwas mühsam zu installieren, aber wenigstens kannst du deine Sachen in eine einfache EXE packen, ohne irgendwelche Dependencies außer der kernel32.dll und vielleicht noch gdi32.dll). Dein kleines Programm wird dann zwar relativ groß (so ca. 300KB schätze ich mal ;)), aber das dürfte aus heutiger Sicht wahrscheinlich eher egal sein, wenn man bedenkt, was diverse Java und .NET Runtimes an Festplattenspeicher verbraten. Wenn du dann noch einen Exe Packer wie UPX dazu gibst, wird's noch kleiner (ca. um die Hälfte). Und laufen tut's auf Win95-Vista. |
@Biri.
Versuche mal das Programm auf einer WinXP-Installation ohne Framework und ohne VC++ 2005 (-Express), z.B. WinXP-Home laufen zu lassen. Genau das aber sollte bei einem portierbaren Programm funktionieren. Auch unter z.B. Windows 95/98. Wie gesagt, am besten durch einfaches Kopieren. Oder wenn nicht anders geht zumindest durch ein Resdistributionset oder eine Setup-Installation. Letztere kann man bei Visual Basic, sowohl V6 als auch 2005 Express erstellen, nicht aber für VC++, weder V6 noch 2005 Express. Ein Programm, das man nicht auf andere PCs portieren kann ist doch wohl ziemlich sinnlos. @delphirocks Der C++ Builder ist doch wohl VC++ V6.0, oder? Damit funktioniert auch das Einbinden der notwendigen DLL's. Damit kann das Programm einfach auf andere PCs kopiert werden, und läuft auch unter Win95 bis -XP (Vista habe und kenne ich noch nicht). Ich möchte das aber auch mit VC++ 2005 Express erreichen (lernen). Nur wie? M.f.G Stz. |
hi,
ich hab ein kleines prog. angehängt, welches text auf die konsole ausgibt - tut sonst nichts. Bitte probier es mal aus auf den PC's, auf welchen dein programm laufen sollte. Das Prog. wurde mit Visual Studio 2005 erstellt und verwendet kein .net Framework. Meiner Meinung nach sollte es daher auf allen Betriebssystemen funktionieren - auch auf denen, für welche es kein .net gibt wie z.B. win95. Das Prog. soll ein "proof of concept" sein, das man mit VS 2005 sehr wohl programme erstellen kann, welche 'portierbar' sind. fg hannes |
Danke Hannes für das Testprogi. Leider habe ich keinen Entpacker für .rar-Dateien, ich arbeite nur mit Zip. Bitte sende es mir nochmals gezippt.
Danke M.f.G. Stz. |
Nimm 7-ZIP , ist gratis und kann alle möglichen Formate inklusive RAR.
Winzip unter XP ist ein Witz - nur für Geduldige. 7 Zip ist ca. 3x so schnell. |
@delphirocks
Danke für das 7-Zip, kannte ich noch nicht. @Biri Nun habe ich das Progi versucht. Es läuft auf keinem PC, auf dem nicht Visual Studio 2005 (Express) installiert ist. Die Fehlermeldung ist bekannt und nochmals im Anhang mitgegeben. Ich kann mir das nicht erklären. M.f.G Stz. |
Hallo Helferleins.
Es haben bisher über 700 Forumsteilnehmer meinen Thread gelesen. Weiss den wirklich niemand wo der Hase im Pfeffer liegt, und wie mein Problem (Portabilität) zu lösen ist? Es hat doch bestimmt schon jemand ein Programm mit VC++ 2005 Express entwickelt und auf einen anderen PC übertragen. Wie geht das? Bitte um Hilfe. M.f.G. Stz. |
hi,
sorry, bisher fehlte einfach die zeit dass ich mir das näher anschaue. dazu muss ich erst mal auf meinem pc daheim virtual pc aufsetzen und testen. fg hannes |
hi stz,
also ich hab mich jetzt hier extra registriert um dir antworten zu können :D ich hatte annähernd des gleiche problem... also generell mal folgendes: wenn du mit visual studio 2005 express entwickeln willst wirst du um das .net framework auf allen deinen zielrechnern nicht herumkommen... falls du kostenlos ohne .net framework entwickeln willst kannst du des höchstens mal wie oben genannt mit dem borland c++ builder probieren... würd ich dir aber ned empfehlen. des is sehr aufwendig damit zu programmieren... noch dazu findest du eig nirgends ne einigermaßen annehmbare dokumentation... ganz ehrlich ich hatte scho meine probleme mit dem ding ein simples konsolen programm , das "hallo welt" ausgibt, zu schreiben... wenn du dazu noch fragen hast solltest du mal wiki schaun... zu dem eigendlichen problem der portierung.. das prob hatte ich auch... ich hab einfach nochmal alles runtergeworfen (d.h. einzig und allein den projects ordner unter eigene datein/visual studio 2005/ aufgehoben, dann den ordner visual studio 2005 in den eigen datein [wo so wie ich des sehn die einstellungen für die IDE gesprichert werden] weg, und alle anwendungen die was mit msdn oder visual studio zu tun hatten runter geworfen [inklusive des .net 1.1 SDK dass ich auch noch installiert hatte]) die aktuellste version von visual studio 2005 c++ express von mircosoft gezogen, und installiert[inklusive msdn 2005 und sql 2005 express]. dannach den projects ordner wieder an die ursprüngliche stelle, die programme an die neu compiliert und seit dem läuft alles wie geschmiert... hab die programme auf 2 xp rechnern(2 unterschiedliche versionen von .net framework 2.0) und auf nem vista rechner (mit .net framework 3.0) getestet... ohne probleme... einfach nur fertige exe kopiert ausgeführt und es lief... hoffe des konnte dir helfen gruß bob007 PS: mit dem win32test hatte ich weder als ich noch den unveränderten stand hatte noch nach dem ich das ganze neu aufgespielt hatte probleme bei der ausführung... hat immer genau des gemacht wie hier beschrieben. |
hallo,
ich hatte leider noch immer keine zeit, einen virtuellen PC aufzusetzen, aber wenn man im internet nach dieser fehlermeldung sucht, findet man eh einiges - hast du das noch nicht gemacht ?! z.B.: http://www.c-plusplus.de/forum/viewt...tart-is-0.html oder auch: http://www.codeproject.com/cpp/vcred...#StaticLinking Ich denke, das "problem" und die lösung werden auf diesen seiten ausührlich besprochen. Zitat:
deine aussage ist nicht korrekt. Zitat:
außerdem ist es nicht die lösung, sondern eher zufall, wenn es danach bei dir funktioniert hat. fg hannes |
1. also warum des ned korrekt is versteh ich ned.
2. ne lösung die sich auf ne neuinstallation beschränkt is für mich einfach. 3. ob zufallsprodukt oder was anderes, hauptsache es läuft... ich nehm mal an das es bei mir an dem SDK gelegen hat... steht ja auch extra auf der microsoftseite bei den installationsanweisung dabei, dass man solches zeug deinstallieren soll... und dieses problem kann ein anderer, der auf der suche nach nem kostenlosen compiler einiges halt mal probiert sehrwohl auch haben(falls es daran liegt) und das so auch beheben -> ich würde es schon als lösung bezeichnen... |
hallo bob007,
ich wollte dir mit der aussage "was du sagst ist nicht korrekt" nicht zu nahe treten, mir geht es nur ums fachliche, nie darum, jemanden zu beleidigen. Zitat:
Zitat:
Zitat:
wie gesagt, das ist meine persönliche meinung. @stz: konntest du mit den links was anfangen? fg hannes |
Zitat:
Zitat:
Zitat:
zur lauffähigkeit auf kundenrechnern: vor der neuinstallation waren es 0%, jetzt sind es 100% -> es lag an der entwicklungsumgebung/compiler... |
hi,
@bob007: du hast recht, mit der express edition gehen anscheinend tatsächlich nur .net anwendungen - das wusste ich nicht, weil ich keine express edition verwende. Einen workaround für win32 applikationen gibt es: http://msdn.microsoft.com/vstudio/ex...alc/usingpsdk/ Interessanterweise auf einer msdn seite. :D fg hannes |
Hallo Helferleins.
Anscheinend hatte ich recht, als ich die These aufstellte, das "Visual Studio 2005 Express" ist, da geschenkt, so eingeschränkt, dass man damit keine portierbaren Applikationen erstellen kann. Es könnte sonst jemand auf die Idee kommen damit Geld zu verdienen. Ich habe auch versucht mit dem SDK 2.0 und dem VC++2005 Express etwas auf die Beine zu stellen - mit dem gleichen (Miss-)Erfolg. Das System dient also nur zum "anfüttern", damit man sich vielleicht die Vollversion kauft. Na ja, die ist mir zu teuer. Ich werde mich also weiter mit diverser gratis-SW behelfen (Borland). Vielen Dank für die versuchte Hilfe. Die Diskussion hat hoffentlich auch anderen geholfen. M.f.G. stz. |
hallo,
Zitat:
Es spricht aber sicher nichts dagegen, eine der zahlreichen anderen, frei verfügbaren IDE's zu verwenden - eine der Bekannteren wäre z.B. Eclipse. fg hannes |
Ich werde die neueste Version von Visual Studio 2005 Express herunnterladen und installieren. Ich weiss allerdings noch nicht ob es eine bessere ist als jene, für die es die CD-Images gibt. Diese habe ich derzeit installiert.
Das wird allerdings noch etwas daueren, ich muss erst eine Internetverbindung zu dem Rechner schaffen, (langes Patchkabel). Ich werde mich dann wieder melden. Viele liebe Grüsse Stz. |
Hurra hurra ich habe es geschaft.
Leider habe ich nicht auf die Bemerkung eines der Diskussionsteilnehmer geachtet, sonst wäre das Problem schon viel früher gelöst. Es muss das Framework 2.0 auf dem ausführenden PC installiert sein, und das gibt es auch bei MiSoft, gratis, als redistributable Version. Danach genügt es ein Kopie des Programms (release-Version) auf den Zielpc zu kopieren. Das Programm kann auch mit der regstrierungsfreien, englischen Version des Visual Studio 2005 Express erzeugt werden. Diese gibt es (noch) als CD-Images zum Download. (Sp1 nicht vergessen). Die deutsche Version gibt es als Netzinstallation oder als DVD (bestellen), dazu muss man sich allerdings bei MiSoft registrieren und die Installation muss auch registriert werden, sonst läuft sie nur 30 Tage. Vielen Dank an alle, die sich bemüht haben mir zu helfen. M.f.G Stz. |
Mein HURRA-Geschrei war wohl etwas voreilig, das Portieren funktioniert nicht mit der CD-Version des Visual Studion 2005 Express, nur mit der neueren deutschen Version, die vom Internet installiert werden kann. Der Grund: In dem EXE-File steht beim Erzeugen mit der deutschen Version eine andere Version des Manifest drinnen (8.0.50608.0) während in der mit der CD-Version 8.0.50727.762 hineingeschrieben wird. Das passt nicht zu dem installierten Framework, welches von MiSoft gratis heruntergeladen werden kann.
Hier schlägt also die berühmt-berüchtigte DLL-Hell zu. Facit: Die Programme sind nur portierbar, (zusammen mit dem Framework von Misoft) wenn sie mit der deutschen Version von VC++2005 Express erzeugt wurden. Interssanterweise läuft aber eine "deutsche" Version des Programms auf dem System, wo die englische Version von Vc++2005 Express installiert wurde. Daraus schliesse ich, das das Framework das gleiche ist, nur die VC++-Version ist eine andere. Es wäre schön wenn jemand herausfinden würde, wie man die englische Version des VC++ dazu bringen könnte die andere ("deutsche") Kennzeichnung ins EXE-File einzutragen. Ein Test mit einem Hexeditor zeigte, dass das Programm damit auch portierbar wurde. M.g.G Stz. |
Hallo!
Bin hier zufällig über den Thread gestolpert, und muss auch noch meinen Senf dazugeben ;) Ich habe keine Ahnung wie das mit der Express-Verion des VS05 ist, aber bei der "normalen" Version kann man den Fehler mit der Anwendungskonfiguration folgendermaßen lösen: (Ich habe nur die EN-Version) Projekt Optionen - Configuration Properties - C/C++ - Code Generation - Runtime Library auf Multi-threaded /MT (ohne DLL) stellen. Mit dieser Einstellung werden bestimmte Dll's dann nicht bei der Ausführung gebraucht. Alternativ könnte man diese Dll's dem Programm beilegen. mfg Lukas |
Danke Lukas.
Alles schon ausprobiert, hat nichts genützt. Die Ursache scheint eine verschiedene Version des Framework und der Version, die VC++ 2005 Express in das .exe-File schreibt, zu sein. Die deutsche Version VC++ 2005 Express schreibt eine andere Version in das .exe-File und damit wurde das Programm portierbar (durch kopieren). Vorausetzung: Installiertes .net-Framework 2.0 auf dem Ziel-PC. Somit ist mein Problem, zumindest teilweise gelöst. Was passiert mit Framework 3.0 oder weiteren Versionen weiss ich nicht, werde es an mich herantreten lassen. Vielen Dank, M.f.G. Stz. |
hi,
...das wird jetzt mein letzern beitrag zu diesem thread. Hast du die die sachen, die ich (2 seiten zuvor) verlinkt habe schon 1 mal durchgelesen? Zitat:
Es gibt das .net Framework 1.0, 1.1, 2.0 und "3.0" (welches eigentlich nur Erweiterungen zu 2.0 sind und auch nicht ohne 2.0 existieren kann - etwas unglückliche Namensawahl von MS) - was meinst du mit "verschiedenen Versionen"? Zitat:
fg hannes |
Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag