【问题标题】:C++ Error to Read byte line读取字节行的 C++ 错误
【发布时间】:2015-08-09 05:29:05
【问题描述】:

我正试图让程序读取文本文件并使用该行来执行函数,但我得到一个错误!

5   IntelliSense: operand types are incompatible ("BYTE" and "char *")
Error   1   error C2446: '==' : no conversion from 'char *' to 'int'
Error   2   error C2040: '==' : 'int' differs in levels of indirection from 'char [260]'

我的代码:

char* ReadINI(char* szSection, char* szKey, const char* szDefaultValue)
{
    char* szResult = new char[255];
    memset(szResult, 0x00, 255);
    GetPrivateProfileString(szSection, szKey, szDefaultValue, szResult, 255, ".\\Config.ini");
    return szResult;
}

int main (Classdata* Cdata)
{
    BYTE ByteID = Cdata->ByteType;
    static char ReadByte[MAX_PATH];
    sprintf(ReadByte, "%s", ReadINI("CONFIG", "Key", "0"));

    if (ByteID == ReadByte)
    {
        printf("Byte Value: %p", ReadByte);
    }
}

【问题讨论】:

  • 'Use the line for function' 你的标题毫无意义。

标签: c++ char byte line


【解决方案1】:

首先,您将 ByteId(unsigned char `)与 ReadByte(char*)进行比较,这不太可能有意义。

在不相关的注释中,szResult 是使用 new 创建的,但从不在 main 中使用 deleted。

【讨论】:

    【解决方案2】:

    再清楚不过了,ByteIdBYTEReadBytechar[260]。你不能比较整数和数组。也许(只是猜测)你的意思是ByteId == ReadByte[0]

    另外,您在 ReadIni 中存在内存泄漏,并且 ReadByte 被声明为静态我看不出没有什么好的理由,并且您声明 main 是不合法的。

    【讨论】:

      【解决方案3】:

      我使用了另一种函数来读取文件!抱歉,我正在做一个私人项目!谢谢大家的帮助

      功能:

      UINT value = GetPrivateProfileInt("Section", "Key", DEFAULT_VALUE, "program.ini");
      

      谢谢大家!

      【讨论】:

      • 您至少可以解决您的问题,使其易于理解。或者删除它。
      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2012-01-24
      相关资源
      最近更新 更多