ohne msvcp 90/100 kompillieren
-
Hab eigentlich nur eine reine WIN32 API Anwendung. Führe ich die auf einem anderen Rechner aus, dann kommt die Meldung, dass die msvcp100.dll nicht da ist. Ich will das Pack aber nicht nach installieren sondern es soll reine API sein.
Ich hab in der Projekteinstellung schon so ziemlich jeden Schalter umgelegt glaube ich.
Hat jemand einen Tipp?
-
mach /nodefaultlib
und definiere einen eigenen Entry-Point
des weiteren programmiere nur in C! kein C++!gegen kernel32.lib, user32.lib, gdi32.lib, ... musst du dann natürlich bei bedarf manuell linken.
-
Jeden Projektschalter umgelegt? Das glaubt Dir niemand, zumindest ich nicht...
und hättest Du etwas in diesen Foren gesucht, wäre Dir sichelich das Stichwort statisches Linken über den Weg gelaufen.
Für den Rest gilt... GIDF
-
Du musst statisch linken...
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/
-
so lange er nicht auf die C-Runtime-Library zugreift, funktioniert meine Methode auch...
man MUSS also NICHT UNBEDINGT statisch linken!

-
Oh man...woran erkenne ich denn, ob ich auf die CRuntime zugreife?
-
secondsun schrieb:
Oh man...woran erkenne ich denn, ob ich auf die CRuntime zugreife?
Vergiss das und linke einfach statisch. Ist nicht soooo schwierig.
-
einfach keine Standard-C funktionen benutzen, weiß nich, wo das Problem is.
so lange die einzigen Header, die man verwendet, zur WindowsAPI gehören (z.B. windows.h, winsock2.h usw.)
benutzt man KEINE c runtime.alles was zum standard gehört wie stdio.h usw. benutzt die c runtime.
-
Na toll, das Programm ist 120kb größer und läuft immer noch nicht......
War ja ein super Trick. Ich check das nicht...Das Video kann ich leider nicht gucken. Bei uns inn der Firma wird das blockiert.
Also nochmal zum mitschreiben. Ich benutze die Visual Studios 2010 und bin schon mal im Release Modus. Dann gehe ich in die Projekteigenschaften unter "Konfigurationseigenschaften"->"C/C++"->"Codegenerierung"->"Laufzeitbibliothek" und stelle dort auf "Multithreaded(/MT) um was aber, außer das Programm zu vergrößern, überhaupt nichts bringt.
Im Bereich "Konfigurationseigenschaften"->"Allgemein"-"Verwendung von MFC" steht "Windows-Standard......"
Im Bereich "Konfigurationseigenschaften"->"Allgemein"-"Verwendung von ATL" steht "ATL wird nicht verwendet"
Im Bereich "Konfigurationseigenschaften"->"C/C++"->"Allgemein"->CLR- Unterstützung steht Keine CRT......
Was mache ich noch falsch?
-
Ok, verzwickte Situation... Funktioniert aber nun doch noch. Die Exe hat ein altes Modul geladen aus der die Meldung stammte...
Danke für die Hilfe;-)