能力值:
(RANK:410 )
|
-
-
2 楼
wsprintf函数不支持转换八进制。只有自己写了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
啊,是这样的啊,那就有点麻烦了,郁闷
|
能力值:
(RANK:410 )
|
-
-
4 楼
.586
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
szOutTextBuf db 256 dup(0)
.code
ReverseStr proc uses esi edi lpStr
xor eax,eax
.if !lpStr
ret
.endif
mov eax,lpStr
xor esi,esi
xor edi,edi
.while BYTE ptr [eax + esi]
inc esi
.endw
.while esi != edi
mov cl,[eax+esi-1]
mov dl,[eax+edi]
mov BYTE ptr [eax+edi],cl
mov BYTE ptr [eax+esi-1],dl
inc edi
dec esi
.endw
ret
ReverseStr endp
;*****************************************
; lpOutBuff为输出缓冲区
; dwValue为要转换的整数值
; nType参数是转换类型,分别可以是2、8、10、16进制都可以转换。
;*****************************************
dwtos proc uses ebx lpOutBuff, dwValue, nType
xor eax,eax
.if !(lpOutBuff)
ret
.endif
mov ebx,lpOutBuff
mov ecx,nType
mov eax,dwValue
.while eax > ecx || eax
xor edx,edx
div ecx
.if dl > 9
add dl,'A' - 10
.else
add dl,'0'
.endif
mov byte ptr [ebx],dl
inc ebx
.endw
invoke ReverseStr,lpOutBuff
ret
dwtos endp
;*********************************************
; 示例代码
;*********************************************
start:
invoke dwtos,offset szOutTextBuf,12345678,10
invoke MessageBox,0,eax,NULL,MB_OK
invoke ExitProcess,NULL
ret
end start
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
用_itow函数,最后一个参数传8
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
呵呵,谢谢小虾版主,代码我测试了下对呢,不过我自己写了那么多感觉再用这么多代码,就显得臃肿了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个函数,我用不起来,我在我的PLATFORM SDK for xp没找到这个函数,难道在哪个DLL里面要导入库,麻烦指点下!
|