Jak zmienić pola struktury za pomocą wskaźników Pythona typu ctypes

Poniżej znajduje się kod, w którym uzyskuję dostęp do wartości dll przy użyciu ctypes.

Moim zamiarem jest przechowywanie adresów pól struktury. Ilekroć zmieniają się wartości w strukturze, mogę uzyskać dostęp do adresów i uzyskać zmienione wartości.

DUMMY_DLL_PATH = "dummyModel.dll"

class MyStruct(ctypes.Structure):  
    _fields_ = [("field_one", ctypes.c_int),  
                ("field_two", ctypes.c_int)]  

d_m = ctypes.cdll.LoadLibrary(DUMMY_DLL_PATH)  

d_i = MyStruct.in_dll(d_m,"dummy_In")  

in_field = ctypes.c_int(d_i.field_one)  

#storing the address  
b = ctypes.addressof(in_field)  
b_v = ctypes.cast(b,ctypes.POINTER(ctypes.c_int))  

k= b_v.contents   

print 'before',d_i.field_one,k.value  
#changing the value  
d_i.field_one = 10  

print 'After',d_i.field_one,k.value  
Wydajność:
Before 0 0  
After 10 0  

Dzięki wskaźnikom wartości się nie zmieniają. Pozostaje 0

questionAnswers(1)

yourAnswerToTheQuestion