我有一些生活在wincrypt.h
课程中的解密代码(使用FileReader.cpp
)。我试图隔离代码并将此解密方法推送到MyCrypt.cpp
类。然而,在移动它时,我遇到了一堆我以前没有遇到过的错误。对于每个wincrypt.h
或windows.h
特定命令,我收到“未找到标识符”或“未声明的标识符”。
什么给了!
更多细节..
示例错误:
错误C2065:'HCRYPTPROV':未声明 标识符
错误C3861:'CryptDecrypt': 找不到标识符
我包括windows.h和wincrypt.h,就像我在FileReader.cpp中一样。
#include "MyCrypt.h"
#include <windows.h>
#include <wincrypt.h>
MyCrypt.h定义为:
#pragma once
class MyCrypt
{
public:
static char *DecryptMyFile(char *input, char *password, int size, int originalSize) ;
private:
static const DWORD KEY_LENGTH = 128;
}
如果我重新安排我的包含文件,我会收到以下错误:
错误C2628:'MyCrypt'后跟 'char'是非法的(你忘记了吗? ';'?)错误C2556:'MyCrypt * MyCrypt :: DecryptMyFile(char *,char *,int,int)':重载函数的区别仅在于'char的返回类型 * MyCrypt :: DecryptMyFile(char *,char *,int,int)
但是在我的代码中没有任何地方使用它重新定义,它说的是..
答案 0 :(得分:2)
检查MyCrypt.h并确保在结束括号后有;
。当我错过这个时,我已经看到了一些相当奇怪的错误信息。您发布的样本中缺少它。
答案 1 :(得分:2)
您在课堂申报后忘记了分号了吗?
答案 2 :(得分:1)
听起来你移出FileReader.cpp的代码要么是引用MyCrypt.cpp中不存在的那个类的成员变量,要么是FileReader.cpp中#included的那些未包含在MyCrypt.cpp中的方法
答案 3 :(得分:0)
听起来你现在在新的MyCrypt.cpp文件中缺少一些#include,例如windows.h和wincrypt.h,但是我们需要实际的错误才能特别有帮助。
答案 4 :(得分:0)
一些想法: