powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов С++ функций
1 сообщений из 1, страница 1 из 1
Вызов С++ функций
    #39714389
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Помогите плиз, коллеги.
func2 работает, как заставить работать func2_arr?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
struct my_struct
{
	char arr[3];
};

extern "C" __declspec(dllexport) void func2(struct my_struct * m)
{
	m->arr[0] = 4;
	m->arr[1] = 5;
	m->arr[2] = 6;
};

extern "C" __declspec(dllexport) void func2_arr(struct my_struct ** m)
{
	my_struct *pt = (my_struct*)CoTaskMemAlloc(10 * sizeof my_struct);

	// Присвоение данных
	for (int i = 0; i < 10; i++)
	{
		pt[i].arr[0] = 0;
		pt[i].arr[1] = 1;
		pt[i].arr[2] = 2;
	}
	*m = pt;
};



Ломается на func2_arr(m2)
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
class MyStruct(Structure):
	_fields_ = ('arr',c_char * 3),

func2 = dll.func2
func2.argtypes = POINTER(MyStruct),
func2.restype = None

m = MyStruct()
func2(m)
print(m.arr[0],m.arr[1],m.arr[2])

func2_arr = dll.func2_arr
func2_arr.argtypes = ndpointer(dtype=MyStruct, shape=(10,)),
func2_arr.restype = None

m2 = ndpointer(dtype=MyStruct, shape=(10,)),
func2_arr(m2)



Ошибка:

Код: plaintext
1.
2.
3.
4.
5.
6.
4 5 6
Traceback (most recent call last):
  File "C:\Users\vvf6426\testLineToc5spot.py", line 56, in <module>
    func2_arr(m2)
ctypes.ArgumentError: argument 1: <class 'TypeError'>: argument must be an ndarray
[Finished in 1.0s]


...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов С++ функций
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]