Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Ejecutar programa externo partiendo de un TEdit (https://www.clubdelphi.com/foros/showthread.php?t=81603)

cocute 29-11-2012 13:29:05

Ejecutar programa externo partiendo de un TEdit
 
Primero aclaro que estoy muy verde en cbuilder.

Lo que me ocurre es que intento ejecutar un programa externo partiendo de dos Tedit, uno con el fihero y otro con el path:
ShellExecute(NULL,"open",Edit1->Text,NULL,Edit1->Text,SW_SHOWMAXIMIZED);

pero me da el error
[bcc32 Error] main.cpp(2203): E2034 Cannot convert 'UnicodeString' to 'const char *'

como debo de hacer para transformar de 'UnicodeString' a 'const char *'?


Muchas gracias

Casimiro Noteví 29-11-2012 13:35:14

Prueba con pchar(edit1.text)

cocute 29-11-2012 13:55:26

Primero aclaro que uso XE3 por si sirve de algo.

Gracias por responder, pero poniendo pchar(edit1.text) me da este otro error:

[bcc32 Error] main.cpp(2206): E2031 Cannot cast from 'UnicodeString' to 'wchar_t *'

Tambien he probado a poner
Edit1->Text.c_str()
pero entonces me da este error
[bcc32 Error] main.cpp(2207): E2034 Cannot convert 'wchar_t *' to 'const char *'


Se que el problema viene por el tema del Unicode, pero no doy en como hacerlo.

Casimiro Noteví 29-11-2012 14:03:01

Es ansistring, creo recordar.

cocute 29-11-2012 14:13:48

gracias de nuevo,
pero si pongo
AnsiString(edit1.text)
me da este error:
[bcc32 Error] main.cpp(2207): E2034 Cannot convert 'AnsiString' to 'const char *'

Casimiro Noteví 29-11-2012 14:21:22

pchar(ansitring(edit1.text))

O creas una variable ansistring y le pasas el valor.
O creas una variable pchar y le pasas el valor.

cocute 29-11-2012 14:41:53

Después de mucho probar así es como me ha funcionado:
ShellExecute(NULL, "open", AnsiString(Edit1->Text).c_str() , NULL, NULL,SW_SHOWMAXIMIZED);

cocute 29-11-2012 15:09:58

Cita:

Empezado por Casimiro Notevi (Mensaje 450846)
pchar(ansitring(edit1.text))

Eso también me daba error:
[bcc32 Error] main.cpp(2206): E2031 Cannot cast from 'AnsiString' to 'wchar_t *'

Pero de todos modos ya lo he solcionado como he dicho antes.


La franja horaria es GMT +2. Ahora son las 02:09:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi