Fehler beim initialisieren der Anwendung auf "fremden Rechnern"



  • Ich habe auf dem Rechner wos Funzt Win Xp Home SP 2 und benutz Visual c++ 2005 Express

    wos nichtklappt:

    Win Xp Media Cnter Edition SP ?
    Win Xp Professional SP ?

    * SP ? == warscheinlich 2

    auf keinem der rechner wos nicht funktioniert ist irgendwas was mit programmieren zu tun haben könnte ( kein Compiler, kein PlattformSDK... )

    mfG noha



  • Liegt u.U. an den CRTs. Wenn es so ist, gibts hier Hilfe:
    http://www.codeproject.com/cpp/vcredists_x86.asp

    gruß
    Martin



  • gibts zu dem Thema nichts auf deutsch ?
    ( mein englisch ist, naja, "nicht so gut" bin noch Schüler 😞 )

    oder kann mir jemand eine Crash-Kurs Anleitung geben was ich umstellen muss ?
    ( ich weis das das viel gefordert ist )

    mfG noha



  • Hi,
    am einfachsten wäre wohl folgendes:
    Projekt -> Projekt-Eigenschaften -> Konfigurationseigenschaften -> C/C++ -> Codegenerierung -> Laufzeitbibliothek
    von "Multi-Threaded-DLL" auf "Multi-Threaded" umzustellen. Das ist allerdings eine unsaubere Lösung und kann andere Fehler nach sich ziehen.

    Vielleicht funktionierts bei dir.

    Achja, zum "nicht so guten" Englisch:
    Leider ist Informatik ein Fach, dessen Literatur und Resourcen nahezu alle in englischer Sprache verfasst werden. Damit muss man sich abfinden. Lernt man heutzutage denn kein Englisch mehr in der Schule? Sollte doch reichen, um sich mit einem Wörterbuch bewaffnet durch so Texte durchkämpfen zu können. Dadurch wird dein Englisch definitiv besser. Wenn du es allerdings nicht anwendest und nur die wenigen deutschen Texte liest, dann wird es weder mit dem Programmieren noch mit der Sprache was.
    Es ist nicht persönlich gemeint, sondern eine generelle Beobachtung.

    gruß
    Martin


  • Mod

    mad_martin schrieb:

    am einfachsten wäre wohl folgendes:
    Projekt -> Projekt-Eigenschaften -> Konfigurationseigenschaften -> C/C++ -> Codegenerierung -> Laufzeitbibliothek
    von "Multi-Threaded-DLL" auf "Multi-Threaded" umzustellen. Das ist allerdings eine unsaubere Lösung und kann andere Fehler nach sich ziehen.

    In wie weit ist das unsauber? DStatisches linken zur CRT ist eine durchaus gängige Praxis.



  • der Link weiter oben schrieb:

    Using this method is not much better than rebuilding the CRTs. Once again, if your application consists of several DLLs where each DLL expects STL/CRT parameters, you will get serious bugs until you rebuild by dynamically linking the CRT.

    And if Microsoft issues a fix for their routines, and you use this method, you become solely responsible for fixing both yours and Microsoft's bugs.

    Natürlich interessiert das nur eine gewisse Zielgruppe.
    Recht hast du allerdings mit "gängiger Praxis", mache es selbst nicht anders.

    gruß
    Martin



  • mad_martin schrieb:

    Hi,
    am einfachsten wäre wohl folgendes:
    Projekt -> Projekt-Eigenschaften -> Konfigurationseigenschaften -> C/C++ -> Codegenerierung -> Laufzeitbibliothek
    von "Multi-Threaded-DLL" auf "Multi-Threaded" umzustellen. Das ist allerdings eine unsaubere Lösung und kann andere Fehler nach sich ziehen.

    Muss ich das in der DLL oder EXE umstellen ?
    in der EXE hab ich das schon umgestellt ( weil ich das irgendwo im Petzold gelesen hab, scheinbar funktionieren sonst meine Threads nicht oder so... )

    und mit dem English :
    bin noch Schüler, und dank belgischem Schulsystem hab ich "erst" 3 Jahre lang 2 Stunden die Woche, klar das ist schonmal etwas aber ich weis nicht ob ihr euch vorstellen könnt was dabei rauskommt wenn ich mich auf einer "Fachspezifischen I-Net-Seite" mit meinen Übersetzungen versuche 😃



  • ich habe festgestellt das meine DLL datei ( wenn ich es dort einstelle ) von 44 auf 80 KB wächst


  • Mod

    mad_martin schrieb:

    der Link weiter oben schrieb:

    Using this method is not much better than rebuilding the CRTs. Once again, if your application consists of several DLLs where each DLL expects STL/CRT parameters, you will get serious bugs until you rebuild by dynamically linking the CRT.

    And if Microsoft issues a fix for their routines, and you use this method, you become solely responsible for fixing both yours and Microsoft's bugs.

    Natürlich interessiert das nur eine gewisse Zielgruppe.
    Recht hast du allerdings mit "gängiger Praxis", mache es selbst nicht anders.

    In der gesamten langen Geschichte der CRT's hat es noch nicht einen Security Fix gegeben für die CRT... Und sicher ist ein Bug drin, könnte er gefixt werden. Die Frage ist nur: Was soll das für ein Bug sein?
    Es gab Bugs der CRT's allerdings wird gerade durch die Manifest und der Side by Side Installation oft genug verhindetr, dass eine neue CRT gealden wird... 🙂



  • @noha:
    Versuchs einfach mal. Im schlimmsten Fall verstehst du genausoviel wie vorher, im besten Fall hast plötzlich den totalen Durchblick. Du kannst also nur gewinnen! 🙂

    Natürlich wird deine Datei dann größer. Es werden dann all die Funktionen in dein Programm eingebunden, auf die du vorher über die CRT-DLLs zugegriffen hast. Dürfte sich aber in den meisten Fällen in Grenzen halten.

    @Martin Richter:
    So gesehen hast du natürlich recht.

    gruß
    Martin


Anmelden zum Antworten