[RESOLVIDO] Compilar DLL para executar no Windows CE / Windows Mobile

8 respostas
E

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.

Obrigada

8 Respostas

E

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

E

http://www.tech-archive.net/Archive/WindowsCE/microsoft.public.windowsce.embedded.vc/2004-10/0038.html

E

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 , ARM720 M_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

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

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

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

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… :frowning:

Vou dar uma pesquisada no site da IBM e posto uma resposta aqui.
Muito obrigada.

E

Resposta para meu problema, e possivelmente o problema de outras pessoas: http://blog.involves.com.br/?p=204

Obrigada, entanglement!

Criado 16 de março de 2010
Ultima resposta 22 de mar. de 2010
Respostas 8
Participantes 2