So, nach langer Zeit muss ich hier auch mal wieder was posten :D
Ich entwickle derzeit die Gamehacking Foundation, die ich hier schonmal vorgestellt hatte.
Momentan macht mich der Linker bei meinem Testprojekt für die Klasse GHF::String fertig.
Ist schon der ganze Code.
Ist der Code der Operatorenüberladung für GHF::String,GHF::String
Fehlermeldung:
Das klappt super und die beiden Strings werden komplett aneinandergehangen.
Damit ich direkt meine zweite Frage loswerden kann:
Die GHF soll eine statische lib werden.
Normalerweise würde ich die STL Lib auch statisch reinlinken, damit ich die Redistributables nicht ausliefern muss, leider macht der Linker dann Stress, wenn ich die GHF in ein anderes Projekt linke, dass die STL auch statisch gelinkt hat.
Dann erzählt er mir nämlich was von Neudefinitionen.
Wenn ich die STL in der GHF statisch linke und im Projekt dynamisch, gehts, leider brauchen die Nutzer die Redistributables, ansonsten lässt sich das Programm nicht starten.
Meine Frage wäre nun:
Wenn ich die STL dynamisch in der GHF linke und im Projekt, in dem ich sie nutze, die STL statisch linke, werden dann die Leute trotzdem die Redistributables brauchen, weil die STL ja in der GHF dynamisch gelinkt ist oder werden die Calls aus der obj Datei der GHF dann auf die statisch gelinkte STL umgeleitet, anstatt auf Dlls?
Falls nicht, heißt das ja, dass ich die GHF nicht zu einer statischen lib machen kann, ohne die Redistributables ausliefern zu müssen, weil ich sie entweder in der GHF oder im Endprojekt dynamisch linken muss <.<
Ich nutze btw. Visual Studio 2010 Professional
Wäre schön, wenn mir da wer helfen könnte :o
Ich entwickle derzeit die Gamehacking Foundation, die ich hier schonmal vorgestellt hatte.
Momentan macht mich der Linker bei meinem Testprojekt für die Klasse GHF::String fertig.
Code:
#include <windows.h>
#include <iostream>
#include <GHF\GHF.h>
#pragma comment (lib, "GHF.lib")
int main()
{
GHF::String s = "hi";
GHF::String s2 = L"hi";
s = s+s2;
std::cout << s.c_str() << std::endl;
system("pause");
return 0;
}
Code:
GHF::String GHF::operator+(GHF::String const &s1, GHF::String const &s2)
{
GHF::String tmp = s1;
tmp += s2;
return tmp;
}
Fehlermeldung:
Ich verstehe einfach nicht, was er von mir will.Quote:
1>------ Erstellen gestartet: Projekt: ghfdetourtest, Konfiguration: Release Win32 ------
1>Der Buildvorgang wurde am 09.11.2010 21:24:57 gestartet.
1>InitializeBuildStatus:
1> Aktualisieren des Timestamps von "Release\ghfdetourtest.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""class GHF::String __cdecl GHF:: operator+(class GHF::String const &,class GHF::String const &)" (??HGHF@@YA?AVString@0@ABV10@0@Z)".
1>G:\Dokumente und Einstellungen\Nico\eigene dateien\visual studio 2010\Projects\ghfdetourtest\Release\ghfdetourtest. exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>
1>Fehler beim Erstellen
1>
1>Verstrichene Zeit 00:00:00.93
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Code:
int main()
{
s += s2;
std::cout << s.c_str() << std::endl;
}
Damit ich direkt meine zweite Frage loswerden kann:
Die GHF soll eine statische lib werden.
Normalerweise würde ich die STL Lib auch statisch reinlinken, damit ich die Redistributables nicht ausliefern muss, leider macht der Linker dann Stress, wenn ich die GHF in ein anderes Projekt linke, dass die STL auch statisch gelinkt hat.
Dann erzählt er mir nämlich was von Neudefinitionen.
Wenn ich die STL in der GHF statisch linke und im Projekt dynamisch, gehts, leider brauchen die Nutzer die Redistributables, ansonsten lässt sich das Programm nicht starten.
Meine Frage wäre nun:
Wenn ich die STL dynamisch in der GHF linke und im Projekt, in dem ich sie nutze, die STL statisch linke, werden dann die Leute trotzdem die Redistributables brauchen, weil die STL ja in der GHF dynamisch gelinkt ist oder werden die Calls aus der obj Datei der GHF dann auf die statisch gelinkte STL umgeleitet, anstatt auf Dlls?
Falls nicht, heißt das ja, dass ich die GHF nicht zu einer statischen lib machen kann, ohne die Redistributables ausliefern zu müssen, weil ich sie entweder in der GHF oder im Endprojekt dynamisch linken muss <.<
Ich nutze btw. Visual Studio 2010 Professional
Wäre schön, wenn mir da wer helfen könnte :o