Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - amchacon

#751
Huy perdón se me olvido el casting:

Código (cpp) [Seleccionar]
DWORD WINAPI ThreadFunc(LPVOID* paquete)
{
   Socket* Parametro = (Socket*) paquete
   Parametro->RecibirOrdenes();
   return 0;
}


Y para que se repita simplemente pones un while (Parametro->RecibirOrdenes() != Valor).
#752
Sencillamente no puedes hacerlo, CreateThread espera una función global (las funciones miembro no son globales porque solo existen dentro de un objeto creado).

Lo mejor que puedes hacer es pasar una referencia a tu clase:

Código (cpp) [Seleccionar]
DWORD WINAPI ThreadFunc(LPVOID* paquete)
{
    paquete->RecibirOrdenes();
    return 0;
}

void Socket::SubProceso()
{
    DWORD dwThreadId;
    CreateThread(NULL, 0, ThreadFunc,this, 0, &dwThreadId);
}
#753
Cita de: leosansan en 20 Junio 2013, 14:12 PM
Lo que te he indicado hace exactamente eso, si existe lo abre y si no "pasa" de la instrucción ¡ ¡ ¡ .

Lo único que me falto indicarte es que si el programa a abrir no está en el directorio actual habrá  que indicar el path, bien con dobles barras invertidas o con barras simples:


Código (cpp) [Seleccionar]
if ("M:\\MP3\\J\\JAMIE CULLUM\\219.mp3")
        system ("M:/MP3/J/JAMIE CULLUM/219.mp3");


Saluditos!
   

Leo, eso no va a funcionar.

El compilador encuentra un puntero const char* que transforma a booleano para hacer la comprobación (dado que el puntero es válido, siempre dará true).

El código de daryo es correcto y si debería funcionar.
#754
Cita de: leosansan en 20 Junio 2013, 03:47 AM
Muy sencillito:

Código (cpp) [Seleccionar]

   if ("programa.exe")
       system ("programa.exe");


Saluditos!
   


Leo, eso no tiene sentido  :rolleyes:
#755
Intenta abrirlo como un fichero normal, si la apertura se realiza con exito esque existe.
#756
Reciclo un código anterior:

Código (cpp) [Seleccionar]
#include <iostream>
#include <map>
#include <vector>
#include <sstream>

using namespace std;

typedef void (*Puntero_A_Funcion)(void);

void Copiar();
void Escribir();
void Cortar();

int main()
{
    void (*Funcion)(void); // Puntero a funcion sin argumentos
    string Mensaje;
    map<string,Puntero_A_Funcion> Comandos;
    vector<string> texto;
    string str;

    Comandos["write"] = Escribir;
    Comandos["copy"] = Copiar;
    Comandos["cut"] = Cortar;

    getline(cin, str);
    stringstream is(str);

    while(is >> str) texto.push_back(str);

    cout <<"Las palabras que pusiste son: " << endl;

    for (int i = 0; i < texto.size(); i++)
        cout << i + 1 << ". " << texto[i] << endl;

    cout << endl;

    for (int i = 0; i < texto.size(); i++)
    {
        Funcion = Comandos[texto[i]]; // Obtengo el puntero a la funcion correspondiente

        if (Funcion) // Si existe la funcion
              Funcion(); // llamar a la funcion
        else
             cout<<"Error, no existe el comando introducido: "<<texto[i]<<endl;
    }

    return 0;
}

void Escribir()
{
    cout<<"Has escrito write"<<endl;
}

void Cortar()
{
    cout<<"Has escrito cortar"<<endl;
}

void Copiar()
{
    cout<<"Has escrito copiar"<<endl;
}


En la misma función puedes escribir también el texto
#757
Control -> Rueda del ratón hacia delante.
#758
Esque tú código no hay por donde cogerlo.

Supongo que querías hacer esto:

Código (cpp) [Seleccionar]
for (int i = 0; i < Texto.size();i++)
{
  if (Texto[i] == "hola")
  {
     cout<<"hello";
  }
  if (Texto[i] == "coche")
  {
     cout<<"car";
  }
  if (Texto[i] == "eyes")
  {
     cout<<"Ojos";
  }
}


Funcionaría, pero es una forma muy fea y no muy eficiente.
#759
Cita de: OmarHack en 19 Junio 2013, 14:16 PMPor casualidad no sabreis solucionar los fallos de mi código no?
No compruebas el tamaño del vector, si te introduzco 2 palabras y me compruebas 3 pues...

Ya te he puesto 2 ejemplo usando maps, a aprendértelo  ;-)
http://minidosis.org/C++/Maps/
#760
Cita de: OmarHack en 19 Junio 2013, 13:22 PMTú siempre solucionándome los problemas!! :)
Eh, que el código de eficsa también vale :)

Cita de: OmarHack en 19 Junio 2013, 13:22 PMTiene buena pinta amchacon, al cojer el ordenador lo pruebo. Una duda sobre tu código, si pongo en la ejecución: hola coche casa coche hola ojos
Me devolverán todos los couts que les ponga a cada uno?
Claro

Cita de: OmarHack en 19 Junio 2013, 13:22 PMY después necesito comparar con ifs ejemplo: if (diccionario[coche] == "coche") mifuncion();
Tú siempre solucionándome los problemas!! :)
No no, ese era otro ejemplo en el que había punteros a funcion.

El código que te he puesto funciona tal cual.