python类c_byte()的实例源码

ndarray.py 文件源码 项目:bifrost 作者: ledatelescope 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def _address_as_buffer(address, nbyte, readonly=False):
    if address is None:
        raise ValueError("Cannot create buffer from NULL pointer")
    # Note: This doesn't work as a buffer when using pypy
    # return (ctypes.c_byte*nbyte).from_address(address)
    # Note: This works as a buffer in regular python and pypy
    # Note: int_asbuffer is undocumented; see here:
    # https://mail.scipy.org/pipermail/numpy-discussion/2008-January/030938.html
    return np.core.multiarray.int_asbuffer(
        address, nbyte, readonly=readonly, check=False)
env_info.py 文件源码 项目:MKFQ 作者: maojingios 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def win32_version_string():
    import ctypes
    class OSVERSIONINFOEXW(ctypes.Structure):
        _fields_ = [('dwOSVersionInfoSize', ctypes.c_ulong),
                    ('dwMajorVersion', ctypes.c_ulong),
                    ('dwMinorVersion', ctypes.c_ulong),
                    ('dwBuildNumber', ctypes.c_ulong),
                    ('dwPlatformId', ctypes.c_ulong),
                    ('szCSDVersion', ctypes.c_wchar*128),
                    ('wServicePackMajor', ctypes.c_ushort),
                    ('wServicePackMinor', ctypes.c_ushort),
                    ('wSuiteMask', ctypes.c_ushort),
                    ('wProductType', ctypes.c_byte),
                    ('wReserved', ctypes.c_byte)]
    """
    Get's the OS major and minor versions.  Returns a tuple of
    (OS_MAJOR, OS_MINOR).
    """
    os_version = OSVERSIONINFOEXW()
    os_version.dwOSVersionInfoSize = ctypes.sizeof(os_version)
    retcode = ctypes.windll.Ntdll.RtlGetVersion(ctypes.byref(os_version))
    if retcode != 0:
        raise Exception("Failed to get OS version")

    version_string = "Version:%d-%d; Build:%d; Platform:%d; CSD:%s; ServicePack:%d-%d; Suite:%d; ProductType:%d" %  (
        os_version.dwMajorVersion, os_version.dwMinorVersion,
        os_version.dwBuildNumber,
        os_version.dwPlatformId,
        os_version.szCSDVersion,
        os_version.wServicePackMajor, os_version.wServicePackMinor,
        os_version.wSuiteMask,
        os_version.wReserved
    )

    return version_string
instructions.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def addc(self, a, b, c):

        if 0 == self.pc_state.P.get_D():
            r  = ctypes.c_short(a + b + c).value
            rc = ctypes.c_byte(a + b + c).value
            self.pc_state.P.set_N((0,1)[0x80 == (rc & 0x80)])
            self.pc_state.P.set_Z((0,1)[rc == 0x0])
            self.pc_state.P.set_V((0,1)[rc != r])   # Overflow

            r = ((a & 0xFF) + (b & 0xFF) + c) & 0xFFFF
            self.pc_state.P.set_C((0,1)[0x100 == (r & 0x100)])
            result = (a + b + c)
        elif 1 == self.pc_state.P.get_D():
            # Decimal Addition
            # FIXME need to fix flags
            #
            r = ctypes.c_short(((a >> 4) & 0xF)* 10+ ((a & 0xF) %10) + ((b>>4) & 0xF)* 10 + ((b & 0xF) %10) + c).value
            rc = ctypes.c_byte(a + b + c).value # ???? TODO
            self.pc_state.P.set_N((0,1)[r < 0])
            self.pc_state.P.set_Z((0,1)[rc == 0x0])
            # self.pc_state.P.V = (rc != r) ? 1:0;   # Overflow

            self.pc_state.P.set_C((0,1)[(r > 99) or (r < 0)])
            result = (((((r/10) % 10) << 4) & 0xf0) + (r%10))

        return result & 0xFF
instructions.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def subc(self, a, b, c):

        if 0 == self.pc_state.P.get_D():
            r  = ctypes.c_short(ctypes.c_byte(a).value - ctypes.c_byte(b).value - ctypes.c_byte(c).value).value
            rs = ctypes.c_byte((a - b - c) & 0xFF).value
            self.pc_state.P.set_N((0,1)[0x80 == (rs & 0x80)]) # Negative
            self.pc_state.P.set_Z((0,1)[rs == 0])   # Zero
            self.pc_state.P.set_V((0,1)[r != rs])   # Overflow

            r = a - b - c 
            self.pc_state.P.set_C((1,0)[0x100 == (r & 0x100)]) # Carry (not borrow
            result = a - b - c
        elif 1 == self.pc_state.P.get_D():
            # Decimal subtraction
            # FIXME need to fix flags

            r = ctypes.c_short(((a >> 4) & 0xF)* 10+ ((a & 0xF) %10) - (((b>>4) & 0xF)* 10 + ((b & 0xF) %10)) - c).value

            # rc = a + b + c
            self.pc_state.P.set_N((0,1)[r < 0])
            self.pc_state.P.set_Z((0,1)[r == 0x0])
            #  Need to check/fix conditions for V
            # self.pc_state.P.V = (rc != r) ? 1:0;   # Overflow
            self.pc_state.P.set_V(1)   # Overflow

            self.pc_state.P.set_C((0,1)[(r >= 0) and (r <= 99)])
            result = (((int(r/10) % 10) << 4) & 0xf0) + (r%10)

        return result & 0xFF
instructions.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def cmp(self, a, b):
        r = ctypes.c_short(ctypes.c_byte(a).value - ctypes.c_byte(b).value).value
        rs = ctypes.c_byte(a - b).value
        self.pc_state.P.set_N((0,1)[0x80 == (rs & 0x80)])    # Negative
        self.pc_state.P.set_Z((0,1)[rs == 0])              # Zero
        r = (a & 0xFF) - (b & 0xFF)
        self.pc_state.P.set_C((1,0)[0x100 == (r & 0x100)]) # Carry (not borrow)
stella.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def _hmove_clocks(self, hm):
        # hm - int8
        # Need to ensure 'hm' maintains negative when shifted.
        clock_shift = 0
        # 'hm >= 0x80' is negative move.
        clock_shift = ctypes.c_byte(hm).value >> 4
        return clock_shift
instructions.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def addc(self, a, b, c):

        if 0 == self.pc_state.P.get_D():
            r  = ctypes.c_short(a + b + c).value
            rc = ctypes.c_byte(a + b + c).value
            self.pc_state.P.set_N((0,1)[0x80 == (rc & 0x80)])
            self.pc_state.P.set_Z((0,1)[rc == 0x0])
            self.pc_state.P.set_V((0,1)[rc != r])   # Overflow

            r = ((a & 0xFF) + (b & 0xFF) + c) & 0xFFFF
            self.pc_state.P.set_C((0,1)[0x100 == (r & 0x100)])
            result = (a + b + c)
        elif 1 == self.pc_state.P.get_D():
            # Decimal Addition
            # FIXME need to fix flags
            #
            r = ctypes.c_short(((a >> 4) & 0xF)* 10+ ((a & 0xF) %10) + ((b>>4) & 0xF)* 10 + ((b & 0xF) %10) + c).value
            rc = ctypes.c_byte(a + b + c).value # ???? TODO
            self.pc_state.P.set_N((0,1)[r < 0])
            self.pc_state.P.set_Z((0,1)[rc == 0x0])
            # self.pc_state.P.V = (rc != r) ? 1:0;   # Overflow

            self.pc_state.P.set_C((0,1)[(r > 99) or (r < 0)])
            result = ((((int(r/10) % 10) << 4) & 0xf0) + (r%10))

        return result & 0xFF
instructions.py 文件源码 项目:pytari2600 作者: ajgrah2000 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def cmp(self, a, b):
        r = ctypes.c_short(ctypes.c_byte(a).value - ctypes.c_byte(b).value).value
        rs = ctypes.c_byte(a - b).value
        self.pc_state.P.set_N((0,1)[0x80 == (rs & 0x80)])    # Negative
        self.pc_state.P.set_Z((0,1)[rs == 0])              # Zero
        r = (a & 0xFF) - (b & 0xFF)
        self.pc_state.P.set_C((1,0)[0x100 == (r & 0x100)]) # Carry (not borrow)
MsgArg.py 文件源码 项目:alljoyn_python 作者: glennpierce 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def GetBool(self):
        value = C.c_byte()
        self._GetBool(self.handle, C.byref(value))
        return value.value
vrep.py 文件源码 项目:vrep-maze-solver 作者: youralien 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def simxSetVisionSensorImage(clientID, sensorHandle, image, options, operationMode):
    '''
    Please have a look at the function description/documentation in the V-REP user manual
    '''
    size = len(image)
    image_bytes  = (ct.c_byte*size)(*image)
    return c_SetVisionSensorImage(clientID, sensorHandle, image_bytes, size, options, operationMode)
win32.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def _create_bitmap(self, width, height):
        self._data = (ctypes.c_byte * (4 * width * height))()
        self._bitmap = ctypes.c_void_p()
        self._format = PixelFormat32bppARGB 
        gdiplus.GdipCreateBitmapFromScan0(width, height, width * 4,
            self._format, self._data, ctypes.byref(self._bitmap))

        self._graphics = ctypes.c_void_p()
        gdiplus.GdipGetImageGraphicsContext(self._bitmap,
            ctypes.byref(self._graphics))
        gdiplus.GdipSetPageUnit(self._graphics, UnitPixel)

        self._dc = user32.GetDC(0)
        gdi32.SelectObject(self._dc, self.font.hfont)

        gdiplus.GdipSetTextRenderingHint(self._graphics,
            TextRenderingHintAntiAliasGridFit)


        self._brush = ctypes.c_void_p()
        gdiplus.GdipCreateSolidFill(0xffffffff, ctypes.byref(self._brush))


        self._matrix = ctypes.c_void_p()
        gdiplus.GdipCreateMatrix(ctypes.byref(self._matrix))

        self._flags = (DriverStringOptionsCmapLookup |
                       DriverStringOptionsRealizedAdvance)

        self._rect = Rect(0, 0, width, height)

        self._bitmap_height = height
vertexbuffer.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def __init__(self, size):
        self.size = size

        self.array = (ctypes.c_byte * size)()
        self.ptr = ctypes.cast(self.array, ctypes.c_void_p).value
vertexbuffer.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def resize(self, size):
        array = (ctypes.c_byte * size)()
        ctypes.memmove(array, self.array, min(size, self.size))
        self.size = size
        self.array = array
        self.ptr = ctypes.cast(self.array, ctypes.c_void_p).value
vertexbuffer.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def map(self, invalidate=False):
        glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT)
        glBindBuffer(self.target, self.id)
        if invalidate:
            glBufferData(self.target, self.size, None, self.usage)
        ptr = ctypes.cast(glMapBuffer(self.target, GL_WRITE_ONLY),
                          ctypes.POINTER(ctypes.c_byte * self.size)).contents
        glPopClientAttrib()
        return ptr
vertexbuffer.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, size, target, usage):
        super(MappableVertexBufferObject, self).__init__(size, target, usage)
        self.data = (ctypes.c_byte * size)()
        self.data_ptr = ctypes.cast(self.data, ctypes.c_void_p).value
        self._dirty_min = sys.maxsize
        self._dirty_max = 0
vertexbuffer.py 文件源码 项目:FightstickDisplay 作者: calexil 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def resize(self, size):
        data = (ctypes.c_byte * size)()
        ctypes.memmove(data, self.data, min(size, self.size))
        self.data = data
        self.data_ptr = ctypes.cast(self.data, ctypes.c_void_p).value

        self.size = size
        glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT)
        glBindBuffer(self.target, self.id)
        glBufferData(self.target, self.size, self.data, self.usage)
        glPopClientAttrib()

        self._dirty_min = sys.maxsize
        self._dirty_max = 0
python_memory_dump.py 文件源码 项目:Exploit-Development-Tools 作者: mgeeky 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def hex_dump_memory(ptr, num):
    import ctypes

    s = ''
    n = 0
    lines = []
    data = list((num * ctypes.c_byte).from_address(ptr))

    if len(data) == 0:
        return '<empty>'

    for i in range(0, num, 16):
        line = ''
        line += '%04x | ' % (ptr + i)
        n += 16

        for j in range(n-16, n):
            if j >= len(data): break
            line += '%02x ' % (data[j] & 0xff)

        line += ' ' * (3 * 16 + 7 - len(line)) + ' | '

        for j in range(n-16, n):
            if j >= len(data): break
            c = data[j] if not (data[j] < 0x20 or data[j] > 0x7e) else '.'
            line += '%c' % c

        lines.append(line)
    return '\n'.join(lines)
env_info.py 文件源码 项目:xxNet 作者: drzorm 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def win32_version_string():
    import ctypes
    class OSVERSIONINFOEXW(ctypes.Structure):
        _fields_ = [('dwOSVersionInfoSize', ctypes.c_ulong),
                    ('dwMajorVersion', ctypes.c_ulong),
                    ('dwMinorVersion', ctypes.c_ulong),
                    ('dwBuildNumber', ctypes.c_ulong),
                    ('dwPlatformId', ctypes.c_ulong),
                    ('szCSDVersion', ctypes.c_wchar*128),
                    ('wServicePackMajor', ctypes.c_ushort),
                    ('wServicePackMinor', ctypes.c_ushort),
                    ('wSuiteMask', ctypes.c_ushort),
                    ('wProductType', ctypes.c_byte),
                    ('wReserved', ctypes.c_byte)]
    """
    Get's the OS major and minor versions.  Returns a tuple of
    (OS_MAJOR, OS_MINOR).
    """
    os_version = OSVERSIONINFOEXW()
    os_version.dwOSVersionInfoSize = ctypes.sizeof(os_version)
    retcode = ctypes.windll.Ntdll.RtlGetVersion(ctypes.byref(os_version))
    if retcode != 0:
        raise Exception("Failed to get OS version")

    version_string = "Version:%d-%d; Build:%d; Platform:%d; CSD:%s; ServicePack:%d-%d; Suite:%d; ProductType:%d" %  (
        os_version.dwMajorVersion, os_version.dwMinorVersion,
        os_version.dwBuildNumber,
        os_version.dwPlatformId,
        os_version.szCSDVersion,
        os_version.wServicePackMajor, os_version.wServicePackMinor,
        os_version.wSuiteMask,
        os_version.wReserved
    )

    return version_string
win32.py 文件源码 项目:cryptogram 作者: xinmingzhang 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def _create_bitmap(self, width, height):
        self._data = (ctypes.c_byte * (4 * width * height))()
        self._bitmap = ctypes.c_void_p()
        self._format = PixelFormat32bppARGB 
        gdiplus.GdipCreateBitmapFromScan0(width, height, width * 4,
            self._format, self._data, ctypes.byref(self._bitmap))

        self._graphics = ctypes.c_void_p()
        gdiplus.GdipGetImageGraphicsContext(self._bitmap,
            ctypes.byref(self._graphics))
        gdiplus.GdipSetPageUnit(self._graphics, UnitPixel)

        self._dc = user32.GetDC(0)
        gdi32.SelectObject(self._dc, self.font.hfont)

        gdiplus.GdipSetTextRenderingHint(self._graphics,
            TextRenderingHintAntiAliasGridFit)


        self._brush = ctypes.c_void_p()
        gdiplus.GdipCreateSolidFill(0xffffffff, ctypes.byref(self._brush))


        self._matrix = ctypes.c_void_p()
        gdiplus.GdipCreateMatrix(ctypes.byref(self._matrix))

        self._flags = (DriverStringOptionsCmapLookup |
                       DriverStringOptionsRealizedAdvance)

        self._rect = Rect(0, 0, width, height)

        self._bitmap_height = height
vertexbuffer.py 文件源码 项目:cryptogram 作者: xinmingzhang 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def __init__(self, size):
        self.size = size

        self.array = (ctypes.c_byte * size)()
        self.ptr = ctypes.cast(self.array, ctypes.c_void_p).value


问题


面经


文章

微信
公众号

扫码关注公众号