etch666
etch666
关注数: 16
粉丝数: 35
发帖数: 1,520
关注贴吧数: 3
兆芯最新视频 兆芯最新视频
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
以前有人到 risc v 群挖人
1 1
1 1
高价收大佬5s64位ios7系统文件 =0= 3103559466 高价收大佬5s64位ios7系统文件 =0= 3102559466
高价求大佬5s64位ios7系统文件 =0= 3103559466 高价求大佬5s64位ios7系统文件 =0= 3103559466
高价求大佬5s64位ios7系统文件 =0= 3103559466 高价求大佬5s64位ios7系统文件 =0= 3103559466
高价求大佬5s64位ios7系统文件 =0= 3103559466 高价求大佬5s64位ios7系统文件 =0= 3103559466
求5s64位ios7系统文件 3103559466 =0= 求5s64位ios7系统文件 3103559466 =0=
与纯汇编俄罗斯方块的比较 使用sphinx c--单文件 /* Simple Tetris - game written in 1997 by Marko Kleine Berkenbusch */ ?resize TRUE ?use80386 ?alignword TRUE ?jumptomain NEAR ?include "VIDEO.H--" ?include "RANDOM.H--" ?include "KEYCODES.H--" ?include "SYSTEM.H--" ?include "VGA.H--" ?include "PORTS.H--" ?define PIT_CHANNEL_0 0x40 ?define PIT_CHANNEL_2 0x42 ?define PIT_CONTROL 0x43 ?define PIT_FREQ 0x1234DD ?define TIMER_INT 0x08 ?define PF_Width 12 ?define PF_Height 22 ?define BS_Width 11 ?define BS_Height 9 ?define Initialspeed 250 byte Tiles[7*16] = { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0 } ; byte Block[99] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 8, 7, 6, 5, 4, 3, 2, 1, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 0, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 0, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 0, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 0, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 0, 4, 4, 9, 8, 7, 6, 5, 4, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 } ; byte pal = FROM "TETRIS.PAL" ; byte logo = FROM "TETRLOGO.DAT" ; byte PField[PF_Width*PF_Height], TempPF[PF_Width*PF_Height] ; byte ActTile[16+1], NewTile[16+1] ; int TPos_x, TPos_y ; byte up, down, left, right, space, enter, quit ; word oldkeyboardhandle[2], oldtimerhandle[2] = {} ; word Lines ; word VScreen ; long Time, speed, timercount, clockticks ; interrupt timerhandle() { $ PUSH DS $ PUSH AX $ PUSH BX DS = CS ; Time++ ; clockticks += timercount ; IF (long clockticks >= 0x10000) { clockticks -= 0x10000 ; $ PUSHF $ CS: $ CALL FAR oldtimerhandle } EOI() ; $ POP BX $ POP AX $ POP DS } interrupt keyboardhandle() { $ PUSH DS $ PUSH AX $ PUSH BX DS = CS ; $ IN AL, 0x60 BL = TRUE ; IF ( AL >= 128 ) {AL -= 128; BL = FALSE; } IF ( AL == s_left ) left = BL; ELSE IF ( AL == s_right ) right = BL; ELSE IF ( AL == s_up ) up = BL; ELSE IF ( AL == s_down ) down = BL; ELSE IF ( AL == s_space ) space = BL; ELSE IF ( AL == s_return ) enter = BL ; ELSE IF ( AL == s_esc ) quit = TRUE ; EATKEY(); EOI(); $ POP BX $ POP AX $ POP DS } void SetTimer (word HandlerSeg, HandlerOfs, Freq) dword counter ; { IF (word Freq > 0) counter = PIT_FREQ / Freq ; ELSE counter = 0 ; timercount = counter ; OUTPORTB(0x34, , , PIT_CONTROL) ; OUTPORTB(counter, , , PIT_CHANNEL_0) ; counter = counter >> 8 ; OUTPORTB(counter, , , PIT_CHANNEL_0) ; OUTPORTB(0x90, , , PIT_CONTROL) ; GETINTVECT(#oldtimerhandle, TIMER_INT) ; clockticks = 0 ; SETINTVECT(, TIMER_INT, HandlerSeg, HandlerOfs) ; } void InitPField (word pfaddr) { AX = PF_Width*PF_Height ; DI = AX ; BX = pfaddr ; loop (DI) DSBYTE[DI+BX-0x01] = 0 ; SI = PF_Width ; loop (SI) { AX = SI + pfaddr ; BX = AX ; DSBYTE[BX-0x01] = -1 ; DSBYTE[PF_Width*PF_Height-PF_Width+BX-0x01] = -1 ; } SI = PF_Height ; loop (SI) { AX = SI-1*PF_Width+pfaddr ; DI = AX ; DSBYTE[DI] = -1 ; DSBYTE[DI+PF_Width-0x01] = -1 ; } } void OutTextXY (word Str, xb, yb; byte c) byte h ; word x, y ; { DI = Str ; FS = 0xF000 ; SI = 0xFA6E ; do { y = 8 ; loop (y) { AL = DSBYTE[DI] ; AH = 0 ; AX = AX << 3 + y - 1 ; BX = AX ; h = FSBYTE[SI+BX] ; x = 8 ; $ PUSH DI loop (x) { AL = h & 1 ; IF (AL <> 0) putpixel19(xb+x-1, yb+y, byte c) ; h >>= 1 ; } $ POP DI } xb += 8 ; DI++ ; } while (DSBYTE[DI] <> 0) ; } void InitScreen () int i, x, y ; { SETVIDEOMODE(0x13) ; SETVGADAC(0, , 768, , , #pal) ; FILLSCREEN19(0x01) ; i = 120 ; loop (i) { putpixel19(100+i, 7, 0x02) ; putpixel19(100+i, 8, 0x02) ; putpixel19(100+i, 9, 0x02) ; putpixel19(100+i, 10, 0x02) ; putpixel19(100+i, 191, 0x02) ; putpixel19(100+i, 192, 0x02) ; putpixel19(100+i, 193, 0x02) ; putpixel19(100+i, 194, 0x02) ; } i = 188 ; loop (i) { putpixel19(101, i+6, 0x02) ; putpixel19(102, i+6, 0x02) ; putpixel19(103, i+6, 0x02) ; putpixel19(104, i+6, 0x02) ; putpixel19(105, i+6, 0x02) ; putpixel19(216, i+6, 0x02) ; putpixel19(217, i+6, 0x02) ; putpixel19(218, i+6, 0x02) ; putpixel19(219, i+6, 0x02) ; putpixel19(220, i+6, 0x02) ; } OutTextXY("Next:", 245, 8, 4) ; OutTextXY("Lines:", 241, 110, 5) ; SI = 0 ; y = 47 ; loop (y) { x = 88 ; loop (x) { putpixel19(94-x, 70-y, byte logo[SI]) ; SI++ ; } } OutTextXY("von", 38, 96, 6) ; OutTextXY("Marko Kleine", 3, 122, 3) ; OutTextXY("Berkenbusch", 7, 134, 3) ; }
求问大神..汇编使用.if伪指令是否有优化 求问大神..汇编使用.if伪指令是否有优化
求大神指点~我也是最大最小值~ _main proc near push bp mov bp,sp sub sp,22 ; mov al,byte ptr [bp-1] cbw mov bx,ax lea ax,word ptr [bp-22] add bx,ax mov al,byte ptr [bx] cbw push ax mov al,byte ptr [bp-2] cbw pop dx sub dx,ax jl @3 mov al,byte ptr [bp-5] jmp short @2 @3: mov al,byte ptr [bp-6] @2: mov byte ptr [bp-6],al ; mov al,byte ptr [bp-1] cbw mov bx,ax lea ax,word ptr [bp-22] add bx,ax mov al,byte ptr [bx] cbw push ax mov al,byte ptr [bp-2] cbw pop dx sub dx,ax jg @5 mov al , byte ptr [ bp - 3 ] jmp short @4 @5: mov al , byte ptr [ bp - 4 ] @4: mov byte ptr [ bp -4 ] , al @1: ; mov sp , bp pop bp ret _main endp
求指点 怎样用诸如MAX = (ARRAY[i]-temp) ? secondMax : MAX ; 求指点 怎样用诸如MAX = (ARRAY[i]-temp) ? secondMax : MAX ; 这样哒最优表达式来写 正文是这样哒 :数组ARRAY存放着10个字数据,求数组的最大数和最小数,并分别存放在变量MAX和MIN中。 求大神指点~
求问 cfree5.0集成开发环境 可以更换编译器吗 就是不用原来哒 mingw5 MinGW编译器 求科普
萌萌新求大神帮我做个最简单哒ocx文件 在此先谢过惹~ 我自己还没学会编写ocx哒方法 原谅我蠢
c++ &引用 和 this关键字 哒实现原理是什么 求大神解答 求大神
有大神写1个最简单哒ocx我看下 自己顶
求测reactos能运行我找到哒基本对话框程序吗
有懂arm 16位thumb汇编 和32位arm汇编哒大神吗 volatile int j(volatile int a ,volatile int b) { volatile int t,i; for ( i=1 , t=1 ; i <=b ; i++ ) t *= i; a = t; return a; }
有懂arm 16位thumb汇编和32位arm 汇编哒大神吗 //子程序 volatile int j(volatile int a ,volatile int b) { volatile int t,i; for ( i=1 , t=1 ; i <=b ; i++ ) t *= i; a = t; return a; } ;-------- . s 文件---------------- export jch area jch.code.readonly entry code32 import j mov r0 , #1 mov r1 , #1 mov r2 , #7 mov r3 , #0 mov r4 , #0 subc add r3 , r0 , r3 bl j add r4 , r4 , r0 add r1 , r1 , #1 cmp r2 , r1 bcc subc stop b stop end
求c++编译出来哒程序占用内存少的方法 求c++编译出来哒程序占用内存少的方法 求大神o(^_^)o
求问编程大神 hal.dll里有好多this关键字 求问怎样变通 ? 求问编程大神 hal.dll里有好多this关键字 求问怎样变通 ?
求问大神2003系统可以让dos游戏窗口化吗o(^_^)o 求问大神2003系统可以让dos游戏窗口化吗o(^_^)o
模拟飞行 顺便问1下qq群有人吗o(^_^)o
大神求内存块管理贪心法求解o(^_^)o 编写一个程序,假定有10元(100角)、5元(50角)、1元(10角)、5角、1角四种钱币,程序根据输入应找给顾客的零钱数(以角为单位),输出应找回的各种钱币的数目,并保证找回的钱币数目最少。
求大神发个c++版哒操作系统内核 我想和kolibri比较下多谢=0= 跪求c++版操作系统内核o(^_^)o
萌萌新 求 extern "C" 用法 求告诉 多谢=0= 萌萌新 求 extern "C" 用法 求告诉 多谢 o(^_^)o
萌新求问大神 链式调用(方法链)能否用普通调用(非方法链)替换... 萌萌新求问大神 链式调用(方法链)哒实质是什么 能否用非链式调用/普通调用(非方法链)替换^_^多谢
求问整型除10000为什么魔术数是红框中的数字
大神求10000以内含7的数字 大神求10000以内含7的数字
萌萌新求问大神 链式调用 在函数实现体里面 能否没有this关键字 萌萌新求问大神 链式调用 在函数实现体里面 能否没有this关键字
萌萌新求问大神链式调用在函数实现里面能否没有this关键字 萌萌新求问大神 链式调用 在函数实现里面 能否没有this关键字
汇编的技术 纯汇编、sphinx c--、 hla 汇编的技术 纯汇编、sphinx c--、 hla
萌萌新求问怎样使用c++使之有汇编哒效率 萌萌新求问怎样使用c++使之有汇编哒效率
求usa1密歇根Michigan开虚拟机qemu给我运送木头和石头私信o(^_^ 求usa1密歇根Michigan学2级数学1级商人虚拟机qemu无限开新号给我运送木头和石头私信o(^_^)o
求问淘宝店叫啥 o(^_^)o 求问淘宝店叫啥
dll化汇编编程
Michael Abrash的动画模式
经典哒DirectDraw struct union和常量.asm文件谁有 struct IDirectDraw { // 这个struct结构体纯c不支持,c++和sphinx c--支持 long stdcall(*QueryInterface)(); long stdcall(*AddRef)(); long stdcall(*Release)(dword pdd); long stdcall(*Compact)(); long stdcall(*CreateClipper)(); long stdcall(*CreatePalette)(); long stdcall(*CreateSurface)(); long stdcall(*DuplicateSurface)(); long stdcall(*EnumDisplayModes)(); long stdcall(*EnumSurfaces)(); long stdcall(*FlipToGDISurface)(); long stdcall(*GetCaps)(); long stdcall(*GetDisplayMode)(); long stdcall(*GetFourCCCodes)(); long stdcall(*GetGDISurface)(); long stdcall(*GetMonitorFrequency)(); long stdcall(*GetScanLine)(); long stdcall(*GetVerticalBlankStatus)(); long stdcall(*Initialize)(); long stdcall(*RestoreDisplayMode)(); long stdcall(*SetCooperativeLevel)(); long stdcall(*SetDisplayMode)(); long stdcall(*WaitForVerticalBlank)(); long stdcall(*GetAvailableVidMem)(); long stdcall(*GetSurfaceFromDC)(); long stdcall(*RestoreAllSurfaces)(); long stdcall(*TestCooperativeLevel)(); long stdcall(*GetDeviceIdentifier)(); long stdcall(*StartModeTest)(); long stdcall(*EvaluateMode)(); }; struct IDirectDrawClipper{ // 这个struct结构体纯c不支持,c++和sphinx c--支持 long stdcall(*QueryInterface)(); long stdcall(*AddRef)(); long stdcall(*Release)(); long stdcall(*GetClipList)(); long stdcall(*GetHWnd)(); long stdcall(*Initialize)(); long stdcall(*IsClipListChanged)(); long stdcall(*SetClipList)(); long stdcall(*SetHWnd)(); }; struct IDirectDrawSurface{ // 这个struct结构体纯c不支持,c++和sphinx c--支持 long stdcall(*QueryInterface)(); long stdcall(*AddRef)(); long stdcall(*Release)(); long stdcall(*AddAttachedSurface)(); long stdcall(*AddOverlayDirtyRect)(); long stdcall(*Blt)(); long stdcall(*BltBatch)(); long stdcall(*BltFast)(); long stdcall(*DeleteAttachedSurface)(); long stdcall(*EnumAttachedSurfaces)(); long stdcall(*EnumOverlayZOrders)(); long stdcall(*Flip)(); long stdcall(*GetAttachedSurface)(); long stdcall(*GetBltStatus)(); long stdcall(*GetCaps)(); long stdcall(*GetClipper)(); long stdcall(*GetColorKey)(); long stdcall(*GetDC)(); long stdcall(*GetFlipStatus)(); long stdcall(*GetOverlayPosition)(); long stdcall(*GetPalette)(); long stdcall(*GetPixelFormat)(); long stdcall(*GetSurfaceDesc)(); long stdcall(*Initialize)(); long stdcall(*IsLost)(); long stdcall(*Lock)(); long stdcall(*ReleaseDC)(); long stdcall(*Restore)(); long stdcall(*SetClipper)(); long stdcall(*SetColorKey)(); long stdcall(*SetOverlayPosition)(); long stdcall(*SetPalette)(); long stdcall(*Unlock)(); long stdcall(*UpdateOverlay)(); long stdcall(*UpdateOverlayDisplay)(); long stdcall(*UpdateOverlayZOrder)(); long stdcall(*GetDDInterface)(); long stdcall(*PageLock)(); long stdcall(*PageUnlock)(); long stdcall(*SetSurfaceDesc)(); long stdcall(*SetPrivateData)(); long stdcall(*GetPrivateData)(); long stdcall(*FreePrivateData)(); long stdcall(*GetUniquenessValue)(); long stdcall(*ChangeUniquenessValue)(); long stdcall(*SetPriority)(); long stdcall(*GetPriority)(); long stdcall(*SetLOD)(); long stdcall(*GetLOD)(); }; struct IDirectDrawPalette{ // 这个struct结构体纯c不支持,c++和sphinx c--支持 long stdcall(*QueryInterface)(); long stdcall(*AddRef)(); long stdcall(*Release)(); long stdcall(*GetCaps)(); long stdcall(*GetEntries)(); long stdcall(*Initialize)(); long stdcall(*SetEntries)(); }; struct DDBLTFX{ DWORD dwSize; DWORD dwDDFX; DWORD dwROP; DWORD dwDDROP; DWORD dwRotationAngle; DWORD dwZBufferOpCode; DWORD dwZBufferLow; DWORD dwZBufferHigh; DWORD dwZBufferBaseDest; DWORD dwZDestConstBitDepth; union{ DWORD dwZDestConst; dword lpDDSZBufferDest; }DUMMYUNIONNAMEN1; DWORD dwZSrcConstBitDepth; union{ DWORD dwZSrcConst; dword lpDDSZBufferSrc; }DUMMYUNIONNAMEN2; DWORD dwAlphaEdgeBlendBitDepth; DWORD dwAlphaEdgeBlend; DWORD dwReserved; DWORD dwAlphaDestConstBitDepth; union{ DWORD dwAlphaDestConst; dword lpDDSAlphaDest; }DUMMYUNIONNAMEN3; DWORD dwAlphaSrcConstBitDepth; union{ DWORD dwAlphaSrcConst; dword lpDDSAlphaSrc; }DUMMYUNIONNAMEN4; union{ DWORD dwFillColor; DWORD dwFillDepth; DWORD dwFillPixel; dword lpDDSPattern; }DUMMYUNIONNAMEN5; DDCOLORKEY ddckDestColorkey; DDCOLORKEY ddckSrcColorkey; }; struct DDPIXELFORMAT{ DWORD dwSize; DWORD dwFlags; DWORD dwFourCC; union{ DWORD dwRGBBitCount; DWORD dwYUVBitCount; DWORD dwZBufferBitDepth; DWORD dwAlphaBitDepth; DWORD dwLuminanceBitCount; DWORD dwBumpBitCount; }DUMMYUNIONNAMEN1; union{ DWORD dwRBitMask; DWORD dwYBitMask; DWORD dwStencilBitDepth; DWORD dwLuminanceBitMask; DWORD dwBumpDuBitMask; }DUMMYUNIONNAMEN2; union{ DWORD dwGBitMask; DWORD dwUBitMask; DWORD dwZBitMask; DWORD dwBumpDvBitMask; }DUMMYUNIONNAMEN3; union{ DWORD dwBBitMask; DWORD dwVBitMask; DWORD dwStencilBitMask; DWORD dwBumpLuminanceBitMask; }DUMMYUNIONNAMEN4; union{ DWORD dwRGBAlphaBitMask; DWORD dwYUVAlphaBitMask; DWORD dwLuminanceAlphaBitMask; DWORD dwRGBZBitMask; DWORD dwYUVZBitMask; }DUMMYUNIONNAMEN5; }; struct DDOVERLAYFX{ DWORD dwSize; DWORD dwAlphaEdgeBlendBitDepth; DWORD dwAlphaEdgeBlend; DWORD dwReserved; DWORD dwAlphaDestConstBitDepth; union{ DWORD dwAlphaDestConst; dword lpDDSAlphaDest; }DUMMYUNIONNAMEN1; DWORD dwAlphaSrcConstBitDepth; union{ DWORD dwAlphaSrcConst; dword lpDDSAlphaSrc; }DUMMYUNIONNAMEN2; DDCOLORKEY dckDestColorkey; DDCOLORKEY dckSrcColorkey; DWORD dwDDFX; DWORD dwFlags; }; struct DDSURFACEDESC{ DWORD dwSize; DWORD dwFlags; DWORD dwHeight; DWORD dwWidth; union{ LONG lPitch; DWORD dwLinearSize; }DUMMYUNIONNAMEN1; DWORD dwBackBufferCount; union{ DWORD dwMipMapCount; DWORD dwZBufferBitDepth; DWORD dwRefreshRate; }DUMMYUNIONNAMEN2; DWORD dwAlphaBitDepth; DWORD dwReserved; LPVOID lpSurface; DDCOLORKEY ddckCKDestOverlay; DDCOLORKEY ddckCKDestBlt; DDCOLORKEY ddckCKSrcOverlay; DDCOLORKEY ddckCKSrcBlt; DDPIXELFORMAT ddpfPixelFormat; DDSCAPS ddsCaps; }; struct DDSURFACEDESC2{ DWORD dwSize; DWORD dwFlags; DWORD dwHeight; DWORD dwWidth; union{ LONG lPitch; DWORD dwLinearSize; }DUMMYUNIONNAMEN1; DWORD dwBackBufferCount; union{ DWORD dwMipMapCount; DWORD dwRefreshRate; DWORD dwSrcVBHandle; }DUMMYUNIONNAMEN2; DWORD dwAlphaBitDepth; DWORD dwReserved; LPVOID lpSurface; union{ DDCOLORKEY ddckCKDestOverlay; DWORD dwEmptyFaceColor; }DUMMYUNIONNAMEN3; DDCOLORKEY ddckCKDestBlt; DDCOLORKEY ddckCKSrcOverlay; DDCOLORKEY ddckCKSrcBlt; union{ DDPIXELFORMAT ddpfPixelFormat; DWORD dwFVF; }DUMMYUNIONNAMEN4; DDSCAPS2 ddsCaps; DWORD dwTextureStage; };
求问大神纯c如何模拟this指针c++表示略慢
求问大神纯c如何模拟this指针c++表示略慢
萌萌新求个 a->b()->c() 式 链式调用 哒实现代码^_^多谢
萌萌新求教大神 链式调用不用拷贝构造函数用malloc可以吗多谢^_^
萌萌新求大神把struct内4个成员函数移到struct外哒实现 多谢^_^
萌萌新求大神把struct内4个成员函数移到struct外哒实现 多谢^_^
萌萌新求教大神 ui->listView->currentItem()->text(); 是啥语法 萌萌新求教大神 ui->listView->currentItem()->text(); 是啥语法
ReactOS哒浏览器支持html5吗 ?求科普
加拿大技术 + 俄罗斯技术 sphinx c-- x86 cpu哒高级汇编 1楼喂度娘
高级x86汇编sphinx c-- Direct3D9 代码 #include <d3dtypes.h> #define D3D_SDK_VERSION 31 extern WINAPI "D3D9.DLL"{ Direct3DCreate9(UINT SDKVersion); } WNDCLASSEX wc; DWORD hInstance; MSG msg; DWORD hWnd; char sClassName="D3D9 Sample"; char sTitle="D3D9 Window"; //IUnknown methods struct IDirect3D9 { /*** IUnknown methods ***/ long stdcall (*QueryInterface)(); long stdcall (*AddRef)(); long stdcall (*Release)(); /*** IDirect3D9 methods ***/ long stdcall (*RegisterSoftwareDevice)(); long stdcall (*GetAdapterCount)(); long stdcall (*GetAdapterIdentifier)(); long stdcall (*GetAdapterModeCount)(); long stdcall (*EnumAdapterModes)(); long stdcall (*GetAdapterDisplayMode)(); long stdcall (*CheckDeviceType)(); long stdcall (*CheckDeviceFormat)(); long stdcall (*CheckDeviceMultiSampleType)(); long stdcall (*CheckDepthStencilMatch)(); long stdcall (*CheckDeviceFormatConversion)(); long stdcall (*GetDeviceCaps)(); long stdcall (*GetAdapterMonitor)(); long stdcall (*CreateDevice)(); }; //IUnknown methods struct IDirect3DDevice9 { /*** IUnknown methods ***/ long stdcall (*QueryInterface)(); long stdcall (*AddRef)(); long stdcall (*Release)(); /*** IDirect3DDevice9 methods ***/ long stdcall (*TestCooperativeLevel)(); long stdcall (*GetAvailableTextureMem)(); long stdcall (*EvictManagedResources)(); long stdcall (*GetDirect3D)(); long stdcall (*GetDeviceCaps)(); long stdcall (*GetDisplayMode)(); long stdcall (*GetCreationParameters)(); long stdcall (*SetCursorProperties)(); long stdcall (*SetCursorPosition)(); long stdcall (*ShowCursor)(); long stdcall (*CreateAdditionalSwapChain)(); long stdcall (*GetSwapChain)(); long stdcall (*GetNumberOfSwapChains)(); long stdcall (*Reset)(); long stdcall (*Present)(); long stdcall (*GetBackBuffer)(); long stdcall (*GetRasterStatus)(); long stdcall (*SetDialogBoxMode)(); long stdcall (*SetGammaRamp)(); long stdcall (*GetGammaRamp)(); long stdcall (*CreateTexture)(); long stdcall (*CreateVolumeTexture)(); long stdcall (*CreateCubeTexture)(); long stdcall (*CreateVertexBuffer)(); long stdcall (*CreateIndexBuffer)(); long stdcall (*CreateRenderTarget)(); long stdcall (*CreateDepthStencilSurface)(); long stdcall (*UpdateSurface)(); long stdcall (*UpdateTexture)(); long stdcall (*GetRenderTargetData)(); long stdcall (*GetFrontBufferData)(); long stdcall (*StretchRect)(); long stdcall (*ColorFill)(); long stdcall (*CreateOffscreenPlainSurface)(); long stdcall (*SetRenderTarget)(); long stdcall (*GetRenderTarget)(); long stdcall (*SetDepthStencilSurface)(); long stdcall (*GetDepthStencilSurface)(); long stdcall (*BeginScene)(); long stdcall (*EndScene)(); long stdcall (*Clear)(); long stdcall (*SetTransform)(); long stdcall (*GetTransform)(); long stdcall (*MultiplyTransform)(); long stdcall (*SetViewport)(); long stdcall (*GetViewport)(); long stdcall (*SetMaterial)(); long stdcall (*GetMaterial)(); long stdcall (*SetLight)(); long stdcall (*GetLight)(); long stdcall (*LightEnable)(); long stdcall (*GetLightEnable)(); long stdcall (*SetClipPlane)(); long stdcall (*GetClipPlane)(); long stdcall (*SetRenderState)(); long stdcall (*GetRenderState)(); long stdcall (*CreateStateBlock)(); long stdcall (*BeginStateBlock)(); long stdcall (*EndStateBlock)(); long stdcall (*SetClipStatus)(); long stdcall (*GetClipStatus)(); long stdcall (*GetTexture)(); long stdcall (*SetTexture)(); long stdcall (*GetTextureStageState)(); long stdcall (*SetTextureStageState)(); long stdcall (*GetSamplerState)(); long stdcall (*SetSamplerState)(); long stdcall (*ValidateDevice)(); long stdcall (*SetPaletteEntries)(); long stdcall (*GetPaletteEntries)(); long stdcall (*SetCurrentTexturePalette)(); long stdcall (*GetCurrentTexturePalette)(); long stdcall (*SetScissorRect)(); long stdcall (*GetScissorRect)(); long stdcall (*SetSoftwareVertexProcessing)(); long stdcall (*GetSoftwareVertexProcessing)(); long stdcall (*SetNPatchMode)(); long stdcall (*GetNPatchMode)(); long stdcall (*DrawPrimitive)(); long stdcall (*DrawIndexedPrimitive)(); long stdcall (*DrawPrimitiveUP)(); long stdcall (*DrawIndexedPrimitiveUP)(); long stdcall (*ProcessVertices)(); long stdcall (*CreateVertexDeclaration)(); long stdcall (*SetVertexDeclaration)(); long stdcall (*GetVertexDeclaration)(); long stdcall (*SetFVF)(); long stdcall (*GetFVF)(); long stdcall (*CreateVertexShader)(); long stdcall (*SetVertexShader)(); long stdcall (*GetVertexShader)(); long stdcall (*SetVertexShaderConstantF)(); long stdcall (*GetVertexShaderConstantF)(); long stdcall (*SetVertexShaderConstantI)(); long stdcall (*GetVertexShaderConstantI)(); long stdcall (*SetVertexShaderConstantB)(); long stdcall (*GetVertexShaderConstantB)(); long stdcall (*SetStreamSource)(); long stdcall (*GetStreamSource)(); long stdcall (*SetStreamSourceFreq)(); long stdcall (*GetStreamSourceFreq)(); long stdcall (*SetIndices)(); long stdcall (*GetIndices)(); long stdcall (*CreatePixelShader)(); long stdcall (*SetPixelShader)(); long stdcall (*GetPixelShader)(); long stdcall (*SetPixelShaderConstantF)(); long stdcall (*GetPixelShaderConstantF)(); long stdcall (*SetPixelShaderConstantI)(); long stdcall (*GetPixelShaderConstantI)(); long stdcall (*SetPixelShaderConstantB)(); long stdcall (*GetPixelShaderConstantB)(); long stdcall (*DrawRectPatch)(); long stdcall (*DrawTriPatch)(); long stdcall (*DeletePatch)(); long stdcall (*CreateQuery)(); }; struct IDirect3DVertexBuffer9 { /*** IUnknown methods ***/ /*** IUnknown methods ***/ long stdcall (*QueryInterface)(); long stdcall (*AddRef)(); long stdcall (*Release)(); /*** IDirect3DResource9 methods ***/ long stdcall (*GetDevice)(); long stdcall (*SetPrivateData)(); long stdcall (*GetPrivateData)(); long stdcall (*FreePrivateData)(); long stdcall (*SetPriority)(); long stdcall (*GetPriority)(); long stdcall (*PreLoad)(); long stdcall (*GetType)(); long stdcall (*Lock)(); long stdcall (*Unlock)(); long stdcall (*GetDesc)(); }; /* Resize Optional Parameters */ struct D3DPRESENT_PARAMETERS { UINT BackBufferWidth; UINT BackBufferHeight; // D3DFORMAT BackBufferFormat; DWORD BackBufferFormat; UINT BackBufferCount; // D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleType; DWORD MultiSampleQuality; // D3DSWAPEFFECT SwapEffect; DWORD SwapEffect; HWND hDeviceWindow; BOOL Windowed; BOOL EnableAutoDepthStencil; // D3DFORMAT AutoDepthStencilFormat; DWORD AutoDepthStencilFormat; DWORD Flags; /* FullScreen_RefreshRateInHz must be zero for Windowed mode */ UINT FullScreen_RefreshRateInHz; UINT PresentationInterval; }; struct CUSTOMVERTEX { floatx; floaty; floatz; floatrhw; DWORDcolor; }; struct VERTICES { CUSTOMVERTEX vertice0; CUSTOMVERTEX vertice1; CUSTOMVERTEX vertice2; }; VERTICES vertices={ 200.0f, 50.0f, 0.5f, 1.0f, 0ffff0000h, 350.0f, 350.0f, 0.5f, 1.0f, 0ff00ff00h, 50.0f, 350.0f, 0.5f, 1.0f, 0ff00ffffh }; #define D3DSWAPEFFECT_DISCARD 1 #define D3DFMT_UNKNOWN 0 #define D3DDEVTYPE_HAL 1 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L #define D3DADAPTER_DEFAULT 0 #define D3DPOOL_DEFAULT 0 #define D3D_OK 0h DWORD D3D; DWORD D3DDevice; DWORD D3DVB; D3DPRESENT_PARAMETERS d3dpp; DWORD pVertices; DWORD InitD3D() { Direct3DCreate9(D3D_SDK_VERSION); if (EAX==0) return; D3D=EAX; EAX=#d3dpp; RtlZeroMemory(EAX, sizeof(D3DPRESENT_PARAMETERS)); d3dpp.Windowed=TRUE; d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat=D3DFMT_UNKNOWN; EAX=#d3dpp; $push ebx EBX = D3D; EBX = DSDWORD[EBX]; EBX.IDirect3D9.CreateDevice(D3D, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, EAX, #D3DDevice); $pop ebx IF (EAX!=D3D_OK){ $XOR EAX, EAX RETURN; } $push ebx EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.CreateVertexBuffer(D3DDevice, sizeof(vertices), 0, D3DFVF_XYZRHW | D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, #D3DVB, 0); $pop ebx IF (EAX!=D3D_OK){ $XOR EAX, EAX RETURN; } $push ebx EAX=#pVertices; EBX = D3DVB; EBX = DSDWORD[EBX]; EBX.IDirect3DVertexBuffer9.Lock(D3DVB, 0, sizeof(vertices), EAX, 0); $pop ebx IF (EAX!=D3D_OK){ $XOR EAX, EAX RETURN; } RtlMoveMemory(pVertices, #vertices, sizeof(vertices)); $push ebx EBX = D3DVB; EBX = DSDWORD[EBX]; EBX.IDirect3DVertexBuffer9.Unlock(D3DVB); $pop ebx EAX=1; } ReleaseD3D() { $push ebx IF(D3DVB != 0) { EBX = D3DVB; EBX = DSDWORD[EBX]; EBX.IDirectDrawSurface.Release(D3DVB); D3DVB = 0; } IF(D3DDevice != 0) { EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirectDrawSurface.Release(D3DDevice); D3DDevice = 0; } IF(D3D != 0) { EBX = D3D; EBX = DSDWORD[EBX]; EBX.IDirectDrawSurface.Release(D3D); D3D = 0; } $pop ebx } //D3DCOLOR_XRGB D3DCOLOR_BLUE={0xff, 0, 0, 255}; //DWORD D3DCOLOR_BLUE=0xFF0000FF; //#define RGBA_MAKE(r,g,b,a) a<<8|r<<8|g<<8|b DWORD D3DCOLOR_BLUE=RGBA_MAKE(0,0,255,255); Render(){ EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.Clear(D3DDevice, 0, 0, D3DCLEAR_TARGET, D3DCOLOR_BLUE, 1.0f, 0); //------------------------------------ EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.BeginScene(D3DDevice); EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.SetStreamSource(D3DDevice, 0, D3DVB, 0, sizeof(CUSTOMVERTEX)); EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.SetFVF(D3DDevice, D3DFVF_XYZRHW | D3DFVF_DIFFUSE ); EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.DrawPrimitive(D3DDevice, D3DPT_TRIANGLELIST, 0, 1 ); EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.EndScene(D3DDevice); //------------------------------------ EBX = D3DDevice; EBX = DSDWORD[EBX]; EBX.IDirect3DDevice9.Present(D3DDevice, 0, 0, 0, 0); } WndProc(DWORD hWnd, uMsg, wParam, lParam) { EAX=uMsg; IF (EAX==WM_DESTROY) { PostQuitMessage(0); $XOR EAX, EAX; RETURN; } RETURN (DefWindowProc(hWnd, uMsg, wParam, lParam)); } main() { GetModuleHandle(0); wc.cbSize=sizeof(WNDCLASSEX); wc.style=CS_CLASSDC; wc.lpfnWndProc=#WndProc; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=EAX; wc.hIcon=0; wc.hCursor=0; wc.hbrBackground=0; wc.lpszMenuName=0; wc.lpszClassName=#sClassName; wc.hIconSm=0; RegisterClassEx(#wc); CreateWindowEx( 0, #sClassName, #sTitle, WS_VISIBLE | WS_OVERLAPPEDWINDOW, 0, 0, 512, 512, 0, 0, hInstance, 0); hWnd=EAX; ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); InitD3D(); IF (EAX!=1) GOTO Exit; do { IF(PeekMessage(#msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(#msg); DispatchMessageA(#msg); } // this does all the graphics update Render(); } while(msg.message != WM_QUIT); Exit: // Deinit ReleaseD3D(); ExitProcess(0); }
sphinx c-- 高级x86汇编语言 1L喂度娘
求问大神为什么有哒高手要重载new和delete void * operator new(unsigned int n) { return malloc(n); } void * operator new[](unsigned int n) { return malloc(n); } void operator delete(void * ptr) { free(ptr); } void operator delete[](void * ptr) { free(ptr); }
萌萌新求问 reactOs/兼容内核哪段有装载识别dll文件的实现.. 能否给个实例 多谢
萌萌新求问 reactOs/兼容内核哪段有装载识别dll文件的实现.. 能否给个实例 多谢
萌萌新求问 reactOs/兼容内核哪段有装载识别dll文件的实现.. 能否给个实例 多谢
1
下一页