Guest Paulo Nobre Postado Fevereiro 28, 2004 Denunciar Share Postado Fevereiro 28, 2004 A alguns anos tinha o VB5 instalado e fiz alguns> programas simples. Não sou programador e sim> professor de matemática. Em alguns desses programas> usei uma receita pronta (digo receita pronta pois> não entendo de funções API) que simulava aquele> efeito "guerra nas estrelas" onde se colocava os> dados de quem fez o programa; não sei se você> conhece.> Acontece que agora resolvi matar a saudade e> reintalei os programas no windows XP. Acontece que> aparece uma mensagem de erro run-time error '6"> overflow> > A função API referendada é:> Private Declare Function BitBlt Lib "GDI32" (ByVal> hDestDC As Integer, ByVal X As Integer, ByVal Y As> Integer, ByVal nWidth As Integer, ByVal nHeight As> Integer, ByVal hSrcDC As Integer, ByVal XSrc As> Integer, ByVal YSrc As Integer, ByVal dwRop As Long)> As Integer> > E o código é:> Private Sub Timer1_Timer()> Dim X As Integer> Dim Txt As String> X% = BitBlt(hDC, theleft, thetop, p1wid, p1hgt,> P1.hDC, 0, 0, &HCC0020)> thetop = thetop - 1> If thetop < -p1hgt Then> Timer1.Enabled = False> Txt$ = "Programa Freeware. Use e abuse"> CurrentY = ScaleHeight / 2> CurrentX = (ScaleWidth - TextWidth(Txt$)) /> 2> Printer.FontSize = 36> Printer.FontBold = True> Print Txt$> End If> End Sub> > A linha que acusa o erro é a que está em vermelho:> X% = BitBlt(hDC, theleft, thetop, p1wid, p1hgt,> P1.hDC, 0, 0, &HCC0020).> Você poderia consertar para mim?> Tem alguma coisa a ver com o XP?> Será que a função API mudou?> >> Muito Obrigado> Paulo Nobre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Fevereiro 28, 2004 Denunciar Share Postado Fevereiro 28, 2004 Tente trocar todos os "Integer" por "Long". O overflow ocorre quando o valor inseridor é maior do que o permitido por um tipo.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Nobre Postado Fevereiro 28, 2004 Denunciar Share Postado Fevereiro 28, 2004 Prezado GraymalkinVocê estava perfeitamente certo.Troquei integer por long e deu certo.ObrigadoPaulo Nobre Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Paulo Nobre
A alguns anos tinha o VB5 instalado e fiz alguns
> programas simples. Não sou programador e sim
> professor de matemática. Em alguns desses programas
> usei uma receita pronta (digo receita pronta pois
> não entendo de funções API) que simulava aquele
> efeito "guerra nas estrelas" onde se colocava os
> dados de quem fez o programa; não sei se você
> conhece.
> Acontece que agora resolvi matar a saudade e
> reintalei os programas no windows XP. Acontece que
> aparece uma mensagem de erro run-time error '6"
> overflow
>
> A função API referendada é:
> Private Declare Function BitBlt Lib "GDI32" (ByVal
> hDestDC As Integer, ByVal X As Integer, ByVal Y As
> Integer, ByVal nWidth As Integer, ByVal nHeight As
> Integer, ByVal hSrcDC As Integer, ByVal XSrc As
> Integer, ByVal YSrc As Integer, ByVal dwRop As Long)
> As Integer
>
> E o código é:
> Private Sub Timer1_Timer()
> Dim X As Integer
> Dim Txt As String
> X% = BitBlt(hDC, theleft, thetop, p1wid, p1hgt,
> P1.hDC, 0, 0, &HCC0020)
> thetop = thetop - 1
> If thetop < -p1hgt Then
> Timer1.Enabled = False
> Txt$ = "Programa Freeware. Use e abuse"
> CurrentY = ScaleHeight / 2
> CurrentX = (ScaleWidth - TextWidth(Txt$)) /
> 2
> Printer.FontSize = 36
> Printer.FontBold = True
> Print Txt$
> End If
> End Sub
>
> A linha que acusa o erro é a que está em vermelho:
> X% = BitBlt(hDC, theleft, thetop, p1wid, p1hgt,
> P1.hDC, 0, 0, &HCC0020).
> Você poderia consertar para mim?
> Tem alguma coisa a ver com o XP?
> Será que a função API mudou?
>
>
> Muito Obrigado
> Paulo Nobre
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.