blowfish decryption ?
-
okay, dann habe ich noch eine letzte frage.
ich linke die blowfish.cpp und .h datei und include die .h datei in meine main.cpp
meine maincpp sieht so aus
#include <iostream> #include "Blowfish.h" using namespace std; int main() { }
müsste es nicht kompilierbar sein? oder könnte ich selbst da einen fehler gemacht haben ?
-
Das sollte compilierbar sein. Ist es das nicht?
-
nein alleine die blowfish.cpp lässt sich nicht kompilieren. das ist ja mein problem
Compiling: BlowFish.cpp C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In constructor 'CBlowFish::CBlowFish(unsigned char*, size_t, const SBlock&)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:319:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:315:8: warning: unused variable 'iVal' [-Wunused-variable] C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(const unsigned char*, unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(const unsigned char*, unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception'
er beschwert sich über die class exception
#include <exception>vielleicht habe ich ein problem mit meinem compiler. ich benutze momentan 4.6.1 gcc. den brauche ich leider für die lambda funktion in meinem vorherigen programm.
-
Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
Mach mal unter den Includes in der Blowfish.cpp einusing namespace std;
. Das#include <exception>
ersetzt du durch#include <stdexcept>
. Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception,domain_error
klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.
-
SeppJ schrieb:
Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
Mach mal unter den Includes in der Blowfish.cpp einusing namespace std;
. Das#include <exception>
ersetzt du durch#include <stdexcept>
. Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception,domain_error
klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.super vielen dank! ich weiß garnicht was ich sagen soll,
ja void main und fehlende includes in der testdatei haben mich sehr verwirrt. wenigstens kann ich jetzt kompilieren, dh ich werde bestimmt bald ein fertiges programm haben!
danke
-
nice ich habe es schon hinbekommen