none
PrintDialog em Sistemas de 64 bits RRS feed

  • Pergunta

  • Pessoal tenho que aplicação que utiliza a caixa de diálogo de impressoras "Windows.Forms.PrintDialog".
    Desenvolvido no VS2008, Windows Forms em VB.NET.
    Este procedimento funciona normalmente em Sistemas Operacionais de 32 bits, mas não funciona em 64 bits.

    O código é semelhante ao abaixo:

       Dim CaixaImpressoras As New Windows.Forms.PrintDialog
            Dim ResultadoPrintDialog As DialogResult = CaixaImpressoras.ShowDialog()
            If (ResultadoPrintDialog = DialogResult.OK) Then
                MessageBox.Show("OK")
            Else
                MessageBox.Show("Cancelado")
            End If

    Já testei no Windows 7 64 bits, Windows Server 2008 R2 64 bits, Windows Server 2008 SP1 64 bits.
    Em nenhum destes citados acima funciona, e nos mesmo SO de 32 bits funciona normalmente.

    Alguém já passou por este problema?
    Para sistema de 64 bits tem outra forma de abrir a caixa de impressoras?

    Grato!
    Edson.


    Edson Correia.
    sexta-feira, 5 de março de 2010 11:45

Respostas

  • Tinha esquecido que meu Seven eh 64bits.

    Testei aqui seu código, e como vc falou em Any CPU e x64 simplesmente não abre o printdialog.

    Agora se eu colocar a plataforma como x86 funciona normalmente.

     

    Vou tentar pesquisar porque isto ocorre, enquanto isso utilize a plataforma x86 vai funcionar.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    quarta-feira, 24 de março de 2010 01:27

Todas as Respostas

  • Pessoal tenho que aplicação que utiliza a caixa de diálogo de impressoras "Windows.Forms.PrintDialog".
    Desenvolvido no VS2008, Windows Forms em VB.NET.
    Este procedimento funciona normalmente em Sistemas Operacionais de 32 bits, mas não funciona em 64 bits.

    O código é semelhante ao abaixo:

       Dim CaixaImpressoras As New Windows.Forms.PrintDialog
            Dim ResultadoPrintDialog As DialogResult = CaixaImpressoras.ShowDialog()
            If (ResultadoPrintDialog = DialogResult.OK) Then
                MessageBox.Show("OK")
            Else
                MessageBox.Show("Cancelado")
            End If

    Já testei no Windows 7 64 bits, Windows Server 2008 R2 64 bits, Windows Server 2008 SP1 64 bits.
    Em nenhum destes citados acima funciona, e nos mesmo SO de 32 bits funciona normalmente.

    Alguém já passou por este problema?
    Para sistema de 64 bits tem outra forma de abrir a caixa de impressoras?

    Grato!
    Edson.


    Edson Correia.
    tens de converter para funcionar 64:
    Vai ao Project menu -> Properties -> Compile tab -> Select "Advanced Compile Options" -> Select "x86" instead of "AnyCPU"

    Just Be Humble Malange!
    • Sugerido como Resposta Danimar Ribeiro terça-feira, 23 de março de 2010 17:33
    sexta-feira, 5 de março de 2010 13:22
    Moderador
  • Edson,

    Faça o seguinte procedimento:

    No projeto windowsforms, vá em propriedades. Vá na aba Compile. Clique num botão embaixo chamado "Advanced Compile Options...". Na opção Target CPU, selecio x86 ou x64. Clique ok, publica e teste novamente.

    Samuel
    Samuel Fabel
    sexta-feira, 5 de março de 2010 13:28
  • Obrigado pela resposta;
    Nesta opção "Target CPU", já está a opção AnyCPU, pois esta aplicação roda em rede, tem máquinas 32 e 64 bits.
    Utilizo o ClickOne para publicar, então todos na rede usam a mesma versão da aplicação.
    Tenho que fazer uma versão para cada SO? Uma 32 e 64?
    Grato!

    Edson Correia.
    sexta-feira, 5 de março de 2010 17:42
  • Obrigado pela resposta;
    Nesta opção "Target CPU", já está a opção AnyCPU, pois esta aplicação roda em rede, tem máquinas 32 e 64 bits.
    Utilizo o ClickOne para publicar, então todos na rede usam a mesma versão da aplicação.
    Tenho que fazer uma versão para cada SO? Uma 32 e 64?
    Grato!

    Edson Correia.
    Acho que sim....
    Just Be Humble Malange!
    sexta-feira, 5 de março de 2010 18:05
    Moderador
  • Fiz um teste coloquei a opção "Target CPU" para x64, mas o problema continua.
    Grato!

    Edson Correia.
    sexta-feira, 5 de março de 2010 20:01
  • Fiz um teste coloquei a opção "Target CPU" para x64, mas o problema continua.
    Grato!

    Edson Correia.
    que versao vb2008 tens? Express Proffissional? 
    Just Be Humble Malange!
    sexta-feira, 5 de março de 2010 20:15
    Moderador
  • Tenho a versão Professional Edition.


    Edson Correia.
    segunda-feira, 8 de março de 2010 02:30
  • Edson,

    Você conseguiu solucionar o seu problema?
    Caso afirmativo poste a solução para que outras pessoas se beneficiem.

    Att,
    Fernanda

     


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    terça-feira, 23 de março de 2010 14:34
    Moderador
  • Edson,

    Você conseguiu solucionar o seu problema?
    Caso afirmativo poste a solução para que outras pessoas se beneficiem.

    Att,
    Fernanda

     


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    terça-feira, 23 de março de 2010 14:34
    Moderador
  • Não consegui resolver. Vou baixar o Visual Studio 2010 RC para fazer uns testes se o problema persiste.

    Vou postar assim que tiver o resultado destes testes.

    Atte.


    Edson Correia.
    terça-feira, 23 de março de 2010 17:29
  • Tente usar x86 como plataforma.

    Acho q pra funcionar a compilação em 64 o seu computador deve ser 64bits.

     

    Seria legal vc colocar a mensagem de erro.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    terça-feira, 23 de março de 2010 17:34
  • Colocando "Target CPU" para x64 dá erro na plataforma 32 bits, men chega neste ponto, por isso já desisti de colocar como x64, até porque como roda em rede, tem 32 e 64, então a opção teria que ser AnyCPU.

    Não acusa erro algum, simplesmente não abre a caixa de diálogo das impressoras.

    Atte.

     


    Edson Correia.
    terça-feira, 23 de março de 2010 19:27
  • E se vc colocar 32bits no Target CPU?

    Se vc especificar 32 bits, na plataforma ele vai funcionar igual em computadores 64 bits.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    quarta-feira, 24 de março de 2010 01:21
  • Tinha esquecido que meu Seven eh 64bits.

    Testei aqui seu código, e como vc falou em Any CPU e x64 simplesmente não abre o printdialog.

    Agora se eu colocar a plataforma como x86 funciona normalmente.

     

    Vou tentar pesquisar porque isto ocorre, enquanto isso utilize a plataforma x86 vai funcionar.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    quarta-feira, 24 de março de 2010 01:27