C++ 将代码从一个类移动到新类时出现的问题?
我的C++ 将代码从一个类移动到新类时出现的问题?,c++,class,C++,Class,我的FileReader.cpp类中有一些解密代码(使用wincrypt.h)。我正在尝试分离代码,并将此解密方法推送到MyCrypt.cpp类中。然而,在移动它的时候,我遇到了一大堆以前没有遇到的错误。对于每个wincrypt.h或windows.h特定命令,我都会收到“未找到标识符”或“未声明标识符” 什么给你 更多细节 示例错误: 错误C2065:“HCRYPTPROV”:未声明 标识符 错误C3861:“加密解密”: 找不到标识符 我包括windows.h和wincrypt.h,就像我在
FileReader.cpp
类中有一些解密代码(使用wincrypt.h
)。我正在尝试分离代码,并将此解密方法推送到MyCrypt.cpp
类中。然而,在移动它的时候,我遇到了一大堆以前没有遇到的错误。对于每个wincrypt.h
或windows.h
特定命令,我都会收到“未找到标识符”或“未声明标识符”
什么给你
更多细节
示例错误:
错误C2065:“HCRYPTPROV”:未声明
标识符
错误C3861:“加密解密”:
找不到标识符
我包括windows.h和wincrypt.h,就像我在FileReader.cpp中一样
#include "MyCrypt.h"
#include <windows.h>
#include <wincrypt.h>
如果重新排列包含文件,则会出现以下错误:
错误C2628:“MyCrypt”后跟
“char”是非法的(你忘了
“;”?)错误C2556:“MyCrypt”
*MyCrypt::DecryptMyFile(char*,char*,int,int)':重载函数仅在返回类型上与'char'不同
*MyCrypt::DecryptMyFile(char*,char*,int,int)
但是在我的代码中,它没有使用它所说的这种重新定义。听起来像是从FileReader.cpp中移出的代码,或者是引用了MyCrypt.cpp中不存在的该类的成员变量,或者引用了FileReader.cpp中包含但不包含在MyCrypt.cpp中的方法。听起来像是从MyCrypt.cpp中移出的代码FileReader.cpp引用了MyCrypt.cpp中不存在的该类的成员变量,或者引用了MyCrypt.cpp中不包含的FileReader.cpp中包含的方法。听起来您现在在新的MyCrypt.cpp文件中缺少了一些包含,例如windows.h和wincrypt.h,但是我们需要实际的错误来提供特别的帮助。听起来您现在在新的MyCrypt.cpp文件中缺少了一些#include,例如windows.h和wincrypt.h,但是我们需要实际的错误来提供特别的帮助。一些想法:
- 您是否在没有首先引用对象的情况下调用方法(因为它们在旧类中,现在已移动,可能您忘记了通过新类中的指针调用它们?)
- 您可以尝试改变include语句的顺序
- 您使用的是预编译头吗?您可以尝试不使用,看看这是否解决了问题
- 您是否在没有首先引用对象的情况下调用方法(因为它们在旧类中,现在已移动,可能您忘记了通过新类中的指针调用它们?)
- 您可以尝试改变include语句的顺序
- 您使用的是预编译头吗?您可以尝试不使用,看看这是否解决了问题
- 一些想法:
右大括号后的代码>。当我错过这些信息时,我看到了一些相当奇怪的错误信息。您发布的示例中缺少它。检查MyCrypt.h并确保有一个右大括号后的代码>。当我错过这些信息时,我看到了一些相当奇怪的错误信息。您发布的示例中缺少该名称。您是否忘记了类声明后的分号?您是否忘记了类声明后的分号?您可以发布更多详细信息吗?比如说,它出错的那一行和你得到的全部错误?MyCrypt.cpp是否以与FileReader.cpp相同的方式包含wincrypt.h和windows.h?添加了更多详细信息来描述您可以发布更多详细信息吗?比如说,它出错的那一行和你得到的全部错误?MyCrypt.cpp是否像FileReader.cpp一样包含wincrypt.h和windows.h?添加了更多细节来描述这是我最初的印象,但似乎不是这样。我更新了我的描述,增加了一些细节。这是我最初的印象,但事实似乎并非如此。我已经更新了我的描述,增加了一些细节。我也这么认为,但我不相信在重复检查时会这样。我已经在我的描述中添加了更多的细节。我也这么认为,但我不相信在重复检查时会这样。我已经在我的描述中添加了更多细节,正在进行并尝试这些…删除我的预编译头引用会产生编译器错误。“查找预编译头时出现意外的文件结尾”添加了将我的include语句重新排列到描述符的结果正在进行并尝试这些操作…删除预编译头引用会产生编译器错误。“在查找预编译头文件时意外的文件结尾”添加了将我的包含语句重新排列到描述中的结果,这些描述也咬了我几次,尤其是当我在使用其他语言后返回到C++的时候。这是我现在检查的第一件事。:)这也咬了我几次,尤其是当我回到C++后,使用其他语言一段时间。这是我现在检查的第一件事。:)
#pragma once
class MyCrypt
{
public:
static char *DecryptMyFile(char *input, char *password, int size, int originalSize) ;
private:
static const DWORD KEY_LENGTH = 128;
}