0 / 0 / 0
Регистрация: 23.05.2019
Сообщений: 26
1

Ошибка E0167 аргумент типа "unsigned char *" несовместим с параметром типа "const char *"

26.10.2019, 08:15. Показов 3623. Ответов 4

Всем привет, подскажите пожалуйста, в проекте MS Visual Studio 2017 напротив строчки lua_pushlstring(L, result, result_len);
постоянно лупит ошибку E0167 аргумент типа "unsigned char *" несовместим с параметром типа "const char *"
Что не так? Как поправить?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    size_t lSecret, lMsg;
    const char* secret = luaL_checklstring(L, 1, &lSecret);
    const unsigned char* msg = (const unsigned char*)luaL_checklstring(L, 2, &lMsg);
    
    //HMAC_SHA512 hmac
 
    HMAC_CTX ctx;
    HMAC_CTX_reset(&ctx);
 
    // Set HMAC key.
    HMAC_Init_ex (&ctx, secret, lSecret, EVP_sha512(), NULL);
 
    // May be called repeatedly to insert all your data.
    HMAC_Update(&ctx, msg, lMsg);
 
    // Finish HMAC computation and fetch result.
    unsigned char result[129];
    unsigned int result_len = 129;
    HMAC_Final(&ctx, result, &result_len);
    //HMAC_CTX_cleanup (&ctx);
 
    lua_pushlstring(L, result, result_len);
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2019, 08:15
Ответы с готовыми решениями:

ShellExecute. ошибка: аргумент типа "const char*" не совместим с параметром типом "LPCSTWR", Visual Studio 2017
Ребят можете помочь. Знаю, что на форуме полно ответов, но никакой не помогает. Делаю программу,...

Ошибка: аргумент типа "Point*" несовместим с параметром типа "const POINT*" (MFC)
Доброго времени суток ! У меня такая проблема, посоветовали функцию Polygon для рисования...

Ошибка: значение типа "const char *" нельзя использовать для инициализации сущности типа "char *
int main(int argc, char* argv) { char* filename = argc == 2 ? argv : "Image0.jpg"; } ...

Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?
#include "stdafx.h" #include <ctime> #include <iostream> #include <conio.h> #include <locale.h>...

4
426 / 152 / 37
Регистрация: 18.08.2012
Сообщений: 751
26.10.2019, 08:31 2
↓↓↓
Цитата Сообщение от Norman99 Посмотреть сообщение
// Finish HMAC computation and fetch result.
unsigned char result[129];
void lua_pushlstring (lua_State *L, const char *s, size_t len);. Pushes the string pointed to by s with size len onto the stack.
0
0 / 0 / 0
Регистрация: 23.05.2019
Сообщений: 26
26.10.2019, 08:56  [ТС] 3
Цитата Сообщение от untyped Посмотреть сообщение
void lua_pushlstring (lua_State *L, const char *s, size_t len)
Да я это уже обнаружил, а как грамотно тогда передать unsigned char result[129] в lua_pushlstring?
0
426 / 152 / 37
Регистрация: 18.08.2012
Сообщений: 751
26.10.2019, 11:52 4
утрированный пример 1:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
void asd(const char * s) // как бы lua_pushlstring
{
  std::cout << "hello!" << s[18] << endl;
}
 
int main() {
  char * tmp = "asdfghjklqwertyuiop";
  asd(tmp);
}
утрированный пример 2:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
void asd(const char * s) // как бы lua_pushlstring
{
  std::cout << "hello!" << s[18] << endl;
}
 
int main() {
  // char * tmp = "asdfghjklqwertyuiop";
  char tmp[129];
  tmp[18] = 'Q';
  asd(tmp);
}
утрированный пример 3:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
void asd(const char * s) // как бы lua_pushlstring
{
  std::cout << "hello!" << s[18] << endl;
}
 
int main() {
  // char * tmp = "asdfghjklqwertyuiop";
  unsigned char tmp[129];
  tmp[18] = 'Q';
  asd((char*)tmp);
}
и самое главное... :
примеры использования lua_pushlstring:
https://cpp.hotexamples.com/ru... mples.html

суть:
сначала надо избавиться от unsigned
0
Эксперт C
25974 / 16182 / 3475
Регистрация: 24.12.2010
Сообщений: 35,416
27.10.2019, 08:48 5
Norman99, попробуйте явно привести тип
C++
1
lua_pushlstring(L, (const char *)(&result[0]), result_len);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2019, 08:48

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибка 'аргумент типа "const char *" несовместим с параметром типа "LPCWSTR"'
Здравствуйте, вот только начал изучать библиотеку WinApi и сразу же при первом примере в учебнике...

Столкнулся с ошибкой "аргумент типа "const char *" несовместим с параметром типа "LPCWSTR"
Привет, столкнулся с ошибкой &quot;аргумент типа &quot;const char *&quot; несовместим с параметром типа &quot;LPCWSTR&quot;&quot;...

Ошибка при сборке "Аргумент типа const wchar_t несовместим с параметром типа LPWSTR"
При попытке собрать решение вылетают ошибки в 242-248 строках #include&lt;Windows.h&gt;...

Ошибка: аргумент типа "char *" не совместим с параметром "LPCWSTR"
Добрый день! Помогите, пожалуйста! Хочу воспользоваться этой функцией: TextOut (HDC hdc, int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.