OpenSSL unter Windows mit Visual Studio 2010
-
Hallo!
Ich habe mir OpenSSl v1.0.0a für Windows runtergeladen und installiert.
Danach habe ich noch meinem Projekt das Include Verzeichnis von OpenSSL mitgeteilt.#include <openssl/evp.h> #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE* file; char key[255]; int keylength; file=fopen("s59788-source-key-clobbered.bin","rb"); if(file == NULL) { printf("Konnte Schluessel nicht finden bzw. öffnen!\n"); return EXIT_FAILURE; } const EVP_CIPHER *c = EVP_aes_128_cbc(); keylength=EVP_CIPHER_key_length(c); printf("%d",keylength); return 0; }
jetzt bekomm ich 2 Fehler:
- Es fehlt ';' vor 'const'
- 'c': nichtdeklarierter BezeichnerUnter Linux ging es. An was kann es liegen? Muss ich noch was linken?
-
Unter ANSI-C89 müssen Variablendeklarationen zu Beginn der Funktion - also vor jeglichen Funktionsaufrufen - stehen.
Übrigens: In C muss man nicht explizit auf 0 prüfen. Ungleich 0 ist immer true. Du prüfst einen bool doch auch nicht explizit auf true ... hoffe ich jedenfalls
-
Dankeschön FrEEzE2046...das war der Fehler!
Aber jetzt hab ich diesen Linker Problem, wie ich mir schon gedacht hatte.
- Verweis auf nicht aufgelöstes externes Symbol "_EVP_CIPHER_key_length" in Funktion "_main".
- Verweis auf nicht aufgelöstes externes Symbol "_EVP_aes_128_cbc" in Funktion "_main".
wie muss ich lib dateien einbinden unter visual studio? Bzw. wie bekomm ich raus welche libs ich brauche?
-
Ich hab jetzt libeay32.lib und ssleay32.lib bei zusätliche abhängigkeiten eingefügt und auch das Verzeichnis "C:\OpenSSL-Win64\lib" wo die libarys stehen angegeben.
Es bleiben trotzdem noch die 2 Fehler....
-
achso das verzeichnis hab ich in Biblotheksverzeichnise eingetragen.
-
Ahhh auch jemand der den IS Beleg macht
hast du auch neben den lib dateien auch die Headerdateien eingebunden?
C/C++ > General > Additional Include Directories
-
hat sich erledigt...irgendwie ging es bloß mit der 64version von openssl nicht.