[RESOLVIDO] Compilar DLL para executar no Windows CE / Windows Mobile
8 respostas
E
eliangela
Olá pessoal!
Criei uma DLL para colocar em um Pocket com sistema operacional Windows Mobile (ou Windows CE). Eu compilei ela usando o visual Studio com a seguinte linha de comando no prompt:
O problema é que, quando eu coloco ela no pocket para ser usada com JNI, dá o seguinte erro:
Pelo que eu percebi, eu compilei a minha DLL para ser usada em sistemas operacionais Win32;
e eu gostaria de saber quais parâmetros que eu preciso utilizar naquela linha de comando para poder compilar para Windows CE.
Pessoal… eu descobri que o meu problema aqui era o seguinte:
Eu tinha instalado o Visual Studio 2010 aqui, e ele não vem com compilador para windows CE. Então eu desinstalei o 2010 e instalei o Visual Studio 2008, que tem tudo que eu preciso.
Entrei na pasta “Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm” para usar o compilador para WinCE.
Mas eu estou encontrando outro erro agora: fatal error C1189: #error : Must define a target architecture.
O que eu faço? preciso compilar essa DLL pra rodar no Pocket.
Obrigada entanglement, mas ainda não está funcionando.
eu fiz essa linha de comando:
No parâmetro -D eu coloquei ARM , ARM5 , x86_ARM , _ARM720 , ARM720M_ARM, etc e não funcionou nenhum destes.
Só por curiosidade, fiz um teste usando -D _M_AMD64 e compilou (com alguns Warnings, mas foi).
Que parâmetro que eu preciso colocar ali? ou : onde aprendo eles?
Obrigada
E
entanglement
Dona Eliangela, queria fazer uma perguntinha. É possível compilar uma DLL JNI para Windows CE ? É que nunca vi um subdiretório “wince” no JDK. Só vi include\win32 (meu JDK é de 32 bits), e acredito que exista include\win64 ou coisa parecida em um JDK de 64 bits.
De qualquer maneira, AMD64 é a arquitetura implementada pelas CPUs de 64 bits compatíveis com Intel ou AMD, que é o caso dos Core2Duo, não das CPUs de PocketPCs, que são compatíveis com ARM.
E
eliangela
Olá!
Usando as bibliotecas originais da JDK da Sun não. Mas eu tenho aqui no meu pocket a IBM J9. E nos subdiretórios da JVM da IBM, tem um diretório include com vários arquivos .H (jni.h, gp.h, j9cfg.h, j9lib.h, j9porterror.h, j9thread.h, jniport.h, j9comp.h, j9port.h, j9socket.h, libhlp.h.
Então o que eu fiz: esse diretório WinCE foi criado por mim, então eu copiei essas bibliotecas para o computador, e passo o diretório no include.
Fiz isso porque eu preciso usar bibliotecas nativas no Pocket e não achei outra alternativa.
Obrigada
E
entanglement
Ah, que interessante. Então o JDK da IBM tem esses includes? Deve também ter os libs, e pelo que imagino ele deve ter instruções específicas para você criar os seus programas JNI. (Será que eles usam o compilador ARM da Intel ou então o compilador ARM da Microsoft? Ou então algum compilador macabro da IBM que custa US$ 4000,00? É questão de procurar na documentação. )
E
eliangela
Sim, tem os libs tbem, e ainda tem os sources java da JVM J9.
Obrigada… vc me deu uma luz aqui…
nunca pensei que existia “instruções específicas” para criar meus programas JNI…
Vou dar uma pesquisada no site da IBM e posto uma resposta aqui.
Muito obrigada.