elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 401
781  Programación / Programación C/C++ / Re: Funcion de Windows RegCreateKey() en: 26 Enero 2017, 10:19 am
Pon:
Código
  1. RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);

Nótese que en el path, retiré el primer "\\", con el cual falla.
782  Programación / .NET (C#, VB.NET, ASP) / Re: Hacer cambios de este código. en: 25 Enero 2017, 16:02 pm
Si vas a hacer un protocoo con varios comandos, entonces ponle un identificador del comando al principio:

Código:
CMD -> 1 byte
if CMD = A {
    protocolo A 
}else if CMD = B {
    protocolo B
}

Ej. Este mismo protocolo, pero del lado del Arduino: https://github.com/ivancea/Arduino-Interpreter/blob/master/arduino_program.c
783  Programación / .NET (C#, VB.NET, ASP) / Re: Hacer cambios de este código. en: 25 Enero 2017, 13:31 pm
Si lo que quieres es responderle al Arduino tras recibir el número, pues nada, es eso. Tras enviar el número, el Arduino tendrá que esperar la respuesta. NO sé qué es exactamente lo que no sabes hacer (solo es enviar, esperar y recibir, al fin y al cabo)


Otra opción es recibir el número en una cantidad de bytes fija. Es decir, 2 posibilidades:
1) Enviar el número "en binario". Un int son 4 bytes, así que solo tendrías que leer 4 bytes. (Si nunca trabajaste con datos binarios, puedes saltarte esta opción temporalmente)
2) Enviar, por ejemplo, 8 caracteres fijos, y rellenarcon ceros: 00015678<datos>.

También puedes poner un delimitador:
15678;<datos>
Pones el punto y coma (o cualquier caracter no-numérico) después, y ya sabes cuando dejar de leer el número.
784  Programación / .NET (C#, VB.NET, ASP) / Re: Hacer cambios de este código. en: 25 Enero 2017, 12:47 pm
Si el protocolo es:
Código:
N -> 5 bytes
{ N BYTES }

Pues primero lees los primeros 5 bytes, los conviertes a un entero, y se lo pones de longitud al array.
Luego, lees esos N bytes (o lo que sea).
785  Programación / Programación C/C++ / Re: funcion que devuelve un puntero de una variable static en: 24 Enero 2017, 21:52 pm
No inicializas c*

Y bueno, static es útil pero, intenta no abusar xD
Código
  1. static char s[i];
Eso te va a generar un array de longitud i la primera vez que se llame a la función, y tendrá ese tamaño siempre.
Deberías suar memoria dinámica qsi quieres que sea dinámico.

Edito: Diría que la declaración static de ese array es ilegal, así que evítala. Punteros, memoria dinámica es la solución.
786  Programación / Programación C/C++ / Re: funcion que devuelve un puntero de una variable static en: 24 Enero 2017, 21:23 pm
Código
  1. int* getArray(unsigned int size){
  2.    static int* array = nullptr;
  3.    if(array != nullptr){
  4.        delee[] array;
  5.    }
  6.  
  7.    array = new int[size];
  8.    return array;
  9. }

Por ejemplo, ahí tienes una función que te da un array de X tamaño de cuya memoria no tienes que preocuparte (es un ejemplo trivial y poco útil, pero es un ejemplo).

Otra posibilidad es almacenar un estado. Por ejemplo, un generador de números aleatorios:

Código
  1. #include <ctime>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int random(int newSeed = -1){
  7. static int seed = 4974654;
  8. if(newSeed != -1)
  9. seed = newSeed;
  10. else
  11. seed = (seed + 784513)%530789;
  12. return seed;
  13. }
  14.  
  15. int main(){
  16. random(time(0));
  17. for(int i=0; i<10; i++)
  18. cout << random()%10 << endl;
  19. }
787  Programación / Programación C/C++ / Re: Implementar metodos de una clase anonima en: 24 Enero 2017, 20:29 pm
Nunca se me dio este caso (no es nada recomendable hacer una clase anónima y definir luego sus miembros fuera, no debería haber razones apra ello).

En cualquier caso, te propongo una posibilidad:

Código
  1. void decltype(o)::foo(){
  2.    // ...
  3. }

decltype, de C++11, obtiene en tiempo de compilación el tipo de lo que le metas dentro.

Por ejemplo:
Código
  1. int n = 5;
  2. decltype(n) j = 7;
Ambos son int.

Puedes usarlo, admeás, en templates o macros.
788  Programación / Programación C/C++ / Re: funcion que devuelve un puntero de una variable static en: 24 Enero 2017, 20:21 pm
La idea del static es que el dato se mantenga de llamada a llamada pero solo sea accesible para esa función. Si sabes que debes usar ese dato fuera de la función hazlo global.

Lo que comenta el fafafa01 también es posible, y se puede utilizar para evitar que el programador que utilice la función se preocupe por la memoria.
Por ejemplo, una variable static es una posible forma de hacer la función localtime de la librería time.h/ctime: http://www.cplusplus.com/reference/ctime/localtime/

A parte de static, otro especificador remarcable es thread_local, que funciona como static, solo que cada nuevo thread tendrá su propia variable.
789  Programación / Programación C/C++ / Re: Forma de evaluación de los operandos de un operador. en: 24 Enero 2017, 17:41 pm
http://en.cppreference.com/w/cpp/language/operator_precedence

Esos casos no dan mucho pié a error. Un post-incremento no se ejecuta hasta el final de la instrucción/línea (de forma genérica).

Ese (i++) que pusiste, no es el operator(). "i()" es el operator (), que es como una llamada a función. Rodear unas operaciones con () no es un operador. Simplemente haces que ese bloque se ejecute completo (cuando se necesite) antes de continuar evaluando.

Para probar estas cosas de forma práctica, siempre puedes crear una clase para ello:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Test{
  6. public:
  7. Test operator+(const Test& test){
  8. cout << " +";
  9. }
  10.  
  11. Test operator++(){
  12. cout << " ++_";
  13. }
  14.  
  15. Test operator++(int){
  16. cout << " _++";
  17. }
  18.  
  19. Test operator[](const Test& test){
  20. cout << " []";
  21. }
  22.  
  23. Test operator=(const Test& test){
  24. cout << " =";
  25. }
  26.  
  27. operator int(){
  28. cout << " int";
  29. }
  30. };
  31.  
  32. int main(){
  33. cout << "Order:";
  34.  
  35. Test a,b;
  36.  
  37. a[++a] = b++;
  38. cout << endl;
  39.  
  40. (int)(a+b);
  41. cout << endl;
  42.  
  43. (int)a+b;
  44. cout << endl;
  45. }
790  Programación / Programación C/C++ / Re: Duda en código. en: 22 Enero 2017, 23:09 pm
Es difícil responder a esto.

Dices que es un juego, así que intuyo que tendrás algún tipo de bucle principal. Podría ser ahí donde lo hagas (llamar a una función que lo actualice si han pasado 5 segundos, por ejemplo)
Páginas: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines