[Resolvido] C++ - CreateProcesso no Windows Mobile

2 respostas
J-Chist

Tenho o seguinte código em uma dll, feita no Visual C++:

#include "Executor.h"  
#include "stdlib.h"
#include <windows.h>  
#include <winbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <TCHAR.H>

JNIEXPORT void JNICALL Java_reader_Executor_constroyBridge (JNIEnv *env, jobject obj)
{  
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
   LPTSTR szCmdline=_tcsdup(TEXT("\\SmartDeviceApplication1.exe"));

   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   ZeroMemory( &pi, sizeof(pi) );


   CreateProcess(szCmdline, szCmdline, NULL, NULL, TRUE ,/* NORMAL_PRIORITY_CLASS*/0 , NULL, NULL, &si, &pi);
   return;  

}

A versão feita para o Win32 roda direitinho, mas quando gero a versão Smart Device e tento executar no Windows Mobile 5.0, não acontece nada!! Minha aplicação Java pede autorização para abrir a dll, passa pelo meu método native, mas parece que o .exe não está sendo executado, porque ele deveria criar um arquivo e esse arquivo não está sendo criado. Quando executo meu .exe manualmente ele funciona na boa.
Alguém sabe se há restrições para chamar um executável externo de dentro de uma dll, no windows mobile??

2 Respostas

J-Chist

@##@ (Isso é um palavrão).
Eram os parâmetros que eu estava passando pro CreateProcess. Mudei para

E funfou.
Caraca!

T

De fato, CreateProcess é bem chatinha de usar. Já tive vários problemas mas estou sem nenhum código aqui comigo para ver como é que resolvi isso, por isso que nem cheguei a pensar em responder.

Só para ser chato…

Em que língua se diz “constroy”? Se for em inglês, o contrário de “destroy” é “construct” ou “build”.

Criado 20 de agosto de 2009
Ultima resposta 20 de ago. de 2009
Respostas 2
Participantes 2