Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将代码从一个类移动到新类时出现的问题?_C++_Class - Fatal编程技术网

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.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;
      }