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??