Verschlüsselung von Dateien
-
Kompiliert normal aber in dieser Zeile schmeißt es ihn raus !
Was heisst das? Runtime Error, Linker Error? Exceptions?
-
Fehler:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
mfg
-
Anscheinend hab ich mit dieser conversation Probleme:
Methoden Parameter
void ScrambleFile::EncryptXmlFile(string &input_filename, string &output_filename)und dann diese Zeile
dw = lpKcEncryptFile(TRUE, input_filename.c_str(), output_filename.c_str(), "TheKey");Danke und mfg
-
Zeige mal mehr Code.
-
#include "ScrambleFile.h" #define KCF_NODECL HINSTANCE hLib; LPKCENCRYPTFILE lpKcEncryptFile; LPKCSELFTEST lpKcSelfTest; DWORD dw; ScrambleFile::ScrambleFile(void) { } ScrambleFile::~ScrambleFile(void) { } void ScrambleFile::EncryptXmlFile(string &input_filename, string &output_filename) { hLib = LoadLibrary("H:/Projekt/source/MP300_TestSuite/debug/KeeCryptLib.dll"); if(hLib == NULL) cout << "Error: Cannot load KeeCrypt.dll library ! " << endl; lpKcEncryptFile = (LPKCENCRYPTFILE)GetProcAddress(hLib, "KcEncryptFile"); dw = lpKcEncryptFile(TRUE, input_filename.c_str(), output_filename.c_str(), "TheKey"); cout << "ScrambleFile Method " << input_filename << " " << output_filename << endl; FreeLibrary(hLib); hLib = NULL; }
-
Es müsste allerdings ein dll Fehler sein (hab aber die dll vorher problemlos im eigenen VS2005 kompiliert) !
-
Hast Du LPKCENCRYPTFILE selbst definiert?
Wie ist er definiert?
-
typedef DWORD(WINAPI *LPKCENCRYPTFILE)(BOOL bEncrypt, LPCTSTR lpInFile, LPCTSTR lpOutFile, LPCTSTR lpPassword); typedef DWORD(WINAPI *LPKCSELFTEST)();Wurde in der keecryptlib.h definiert (in ScrambleFile.h eingebunden)
-
Die 2 Zeilen
typedef DWORD(WINAPI *LPKCENCRYPTFILE)(BOOL bEncrypt, LPCTSTR lpInFile, LPCTSTR lpOutFile, LPCTSTR lpPassword); typedef DWORD(WINAPI *LPKCSELFTEST)();mussten laut windef.h in
typedef DWORD(WINAPIV *LPKCENCRYPTFILE)(BOOL bEncrypt, LPCTSTR lpInFile, LPCTSTR lpOutFile, LPCTSTR lpPassword); typedef DWORD(WINAPIV *LPKCSELFTEST)();geändert werden.
Auszug:
#define CALLBACK __stdcall #define WINAPI __stdcall #define WINAPIV __cdeclBlöder Fehler - Danke trotzdem für die Hilfe !
mfg
-
Hallo !
Ausgehend vom vorherigen Verlauf möchte ich nun die entschlüsselte Datei nicht aufs Dateisystem schreiben sondern in einen Datenstrom (filestream) !
hier wird entschlüsselt:
dw = lpKcEncryptFile(FALSE, input_filename.c_str(), output_filename.c_str(), encKey.c_str());output_filename.c_str() wäre der Pfad zur Datei die dann entschlüsselt geschrieben wird -> möchte ich aber wie gesagt in ein Objekt kapseln ! nur wie ?
Vielen Dank für Antworten !
mfg