Я могу преобразовать в C++ только 1-байтовые данные. Но если я изменю uint8_t* на uint16_t, все будет в порядке.
TypeError: func(): несовместимые аргументы функции. Поддерживаются следующие типы аргументов:
1. func(arg0: int, arg1: int, /) -> Нет
Вызывается с типами: int, int
ФАЙЛ C++:
#include
#include
namespace nb = nanobind;
void func (const uint8_t* ptr, uint64_t size) {
printf("%s\n",ptr);
}
NB_MODULE(my_ext, m) {
m.def("func", &func, nb::rv_policy::reference);
}
ФАЙЛ Python:
import my_ext
import ctypes
import sys
data = 255
data = data.to_bytes(2, byteorder='big')
data = int.from_bytes(data, byteorder='big')
my_ext.func(data, int(sys.getsizeof(data)))
CMakeLists
cmake_minimum_required(VERSION 3.15...3.27)
project(sp_project)
if (CMAKE_VERSION VERSION_LESS 3.18)
set(DEV_MODULE Development)
else()
set(DEV_MODULE Development.Module)
endif()
find_package(Python 3.8 COMPONENTS Interpreter ${DEV_MODULE} REQUIRED)
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()
# Detect the installed nanobind package and import it into CMake
execute_process(
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE NB_DIR)
list(APPEND CMAKE_PREFIX_PATH "${NB_DIR}")
find_package(nanobind CONFIG REQUIRED)
nanobind_add_module(my_ext my_ext.cpp)
Подробнее здесь: https://stackoverflow.com/questions/786 ... nt8-t-to-c
Расширение Nanobind C++. Как я могу преобразовать bytes() в Python в uint8_t* в С++? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Расширение Nanobind C++. Как я могу преобразовать bytes() в Python в uint8_t* в С++?
Anonymous » » в форуме C++ - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Преобразовать текущую дату в массив байтов Uint8 в формате с прямым порядком байтов.
Anonymous » » в форуме Javascript - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-