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

#951
Qué sistema operativo tienes (Ej.: Windows 7 Pro 64-bit), se me ocurre que tienes un ShorCut, SoftLink, HardLink o Launcher en lugar de un .exe físico y real. Si compartes tu Sistema Operativo yo puedo buscar un debug.exe funcional para ese sistema y sacarle un CheckSum para que compruebes legitimidad, restaures (sfc o dism) o descargues el debug.exe real.
#952
¿Cómo ejecutas el comando debug? tienes una captura de pantalla que muestre el problema, o puedes detallar más de los pasos exactos que sigues?
#953
Programación C/C++ / Re: Error en un problema
19 Abril 2020, 07:12 AM
Saludos,

- Trata de interpretar tu Log de errores y advertencias, por ejemplo dice: Error, se esperaba un ; antes de usar if, pues falta poner el ; luego de suma = a + b

- Si estás aprendiendo tienes que tener a un costado una guía y quizá un manual de referencia, yo te recomendaría estos:

https://openlibra.com/es/book/fundamentos-basicos-de-programacion-en-c
https://openlibra.com/es/book/fundamentos-de-programacion-con-el-lenguaje-de-programacion-c-ed-2017

- Luego puedes profundizar un poquito más con estos:
http://arco.esi.uclm.es/~david.villa/pensar_en_C++/pensar_en_cpp-vol1.pdf
http://arco.esi.uclm.es/~david.villa/pensar_en_C++/pensar_en_cpp-vol2.pdf
#954
ASM / Re: codigo ensamblador
19 Abril 2020, 06:57 AM
Saludos,

- Ensamblador a que nivel? solo 16-bit? alguna sintaxis o compilador preferido (masm, tasm, fasm, emu8086, etc)?

- Tienes algún ejemplo con instrucciones que se pueden utilizar? haz avanzado algo?
#955
Cita de: Beginner Web en 18 Abril 2020, 20:57 PM
Que lindo  ;-)

PD: Que vuelvan los viejos emojis, porque pusieron zapallos?

- Cierto, yo empecé a creer que había dormido tanto tiempo que ya estábamos en Halloween XD. Tampoco entiendo porque le llaman calabaza a los zapallos XD, en mi país las calabazas son muy diferentes.



- Con respecto a la pregunta, pues diferenciar campo, atributo y propiedad, según tengo entendido en C# los atributos son un mecanismo extensible para agregar información personalizada al código (ensamblados, tipos, miembros, valores de retorno y parámetros) y suelen tener una sintáxis entre corchetes [ObsoleteAttribute].

- Entonces me quedo con Campo y Propiedad, aquí la diferencia es que un Campo es simplemente la declaración de una variable dentro de una Clase o Estructura, y Propiedad es un híbrido entre Campo y Método, ya que este se comporta como un Campo desde fuera de la clase pero en realidad trabaja como un par de Métodos Get y Set, automáticamente se llama al Método Get cuando se lee, y se llama al Método Set cuando se escribe.

Ej.: Campo:

Código (csharp) [Seleccionar]
class Usuario {
  public int usu_Id;
}


Ej.: Propiedad (automática):

Código (csharp) [Seleccionar]
class Usuario {
  public int Usu_Id {get; set;}
}


Ej.: Propiedad (normal):

Código (csharp) [Seleccionar]
class Usuario {
  private int usu_Id;

  public int Usu_Id {
    get { return usu_Id; }
    set { usu_Id = value; }
}


- Como siempre se dice, la ventaja de las Propiedades sobre los Campos es que una Propiedad permite filtrar o sanitizar la entrada o salida de la variable gracias a los Métodos Get y Set que actúan como intermediarios.

- Por último, con respecto a los atajos para crear un Constructor, Propiedades, etc, se hacen dando un click derecho > insertar fragmento de código, ahí puedes ver una lista de varios fragmentos de código y también su Snipped o atajo, por ejemplo para:

-- Constructor: ctr
-- Propiedad: prop
-- Clase: class
-- For: for
-- etc, etc, etc

- Los Snipped son muy útiles en el IDE, ya que ahorran tiempo al escribir código, basta con escribir el snipped y dar dos veces Tab.

- El Constructor sirve para "hacer cosas" cuando se Instancia una Clase (se crea un Objeto nuevo), lo normal es inicializar valores para los Campos ya sea directamente o mediante Propiedades. Si ves que hay varios Constructores, uno sin parámetros y otros con parámetros es una funcionalidad más de C#, la Sobrecarga de Constructores, el propio lenguaje se encargará de utilizar el Constructor adecuando de acuerdo a los parámetros dados.

Ej.: Constructor vacio:

Código (csharp) [Seleccionar]
class Usuario {
  private int usu_Id;

  public int Usu_Id {
    get { return usu_Id; }
    set { usu_Id = value; }

  public Usuario(){}
}


Ej.: Constructor normal:

Código (csharp) [Seleccionar]
class Usuario {
  private int usu_Id;

  public int Usu_Id {
    get { return usu_Id; }
    set { usu_Id = value; }

  public Usuario(int id) {
    Usu_Id = id;
  }
}


Ej.: Constructor sobrecargado:

Código (csharp) [Seleccionar]
class Usuario {
  private int usu_Id;

  public int Usu_Id {
    get { return usu_Id; }
    set { usu_Id = value; }

  public Usuario(){}

  public Usuario(int id) {
    Usu_Id = id;
  }
}
#956
Saludos,

Lo acabo de probar y si me funciona:

Código (dos) [Seleccionar]
CD %ProgramFiles%\Oracle\VirtualBox\
VBoxManage.exe setextradata "Win8_x64" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
VBoxManage.exe modifyvm "Win8_x64" --biossystemtimeoffset 10800000


- El código anterior me cambia la fecha de mi Máquina virtual "Win8_x64" +3 horas con respecto a mi máquina real. He reiniciado, apagada, cerrado virtualbox y la fecha se mantiene.

- Mi ExtraDataItem en Win8_x64.vbox

Código (xml) [Seleccionar]
    <ExtraData>
      <ExtraDataItem name="VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" value="1"/>
    </ExtraData>


- Mi BIOS en Win8_x64.vbox

Código (xml) [Seleccionar]
      <BIOS>
        <IOAPIC enabled="true"/>
        <TimeOffset value="10800000"/>
      </BIOS>


-- He utilizado la calculadora de windows > ver > conversion de unidades > Hora > a milisegundo
-- Los comandos VBoxManage se hacen con la Máquina virtual apagada.
#957
Saludos,

- Como bien dice el libro:

Cita de: pág. iiiIf you have never programmed before, this book will be tough.

- No conocía el libro, parece bastante bueno XD, voy a agregarlo a mi biblioteca, es gratuito y está en inglés.

-- Página oficial: https://modernc.gforge.inria.fr/
-- Descarga directa: https://gforge.inria.fr/frs/download.php/file/38170/ModernC.pdf

- Te puedo recomendar otros libros más sencillos en español como estos:
https://openlibra.com/es/book/fundamentos-de-programacion-en-c
https://openlibra.com/es/book/introduccion-a-la-programacion-con-c-3
https://openlibra.com/es/book/apuntes-de-la-materia-de-programacion-basica
#958
Saludos,

Revisa las pistas de datos, normalmente pintada sobre la lámina de plástico, he visto este problema en varios teclados y la causa es algún liquido sobre el teclado a deteriorado e incluso despintado dichas pistas. Si tienes el Marcador de pistas lo puedes corregir, o a veces con un/unos filamentos de cable muy delgados ...



Tutorial recomendado: https://foro.geeknetic.es/hardware/perifericos/20344-%C3%82%C2%BFc%C3%83%C2%B3mo-reparar-las-teclas-de-un-teclado
#959
Desarrollo Web / Re: bootstrap 4
17 Abril 2020, 23:11 PM
Como dice Engel Lex puede faltar una referencia o un error en el código, recomiendo abrir las Herramientas de Desarrollador > Consola (Ctrl + Shift + I ó F12) y revisar el log que muestra la consola, quizá menciona algún error de referencia o código.
#960
Es completamente normal que todo el canvas se rote ya que estas rotando el ctx que es el canvas. Lo normal que tener un Sprite Sheet como el siguiente:



- Luego agregar la imagen al canvas usando las coordenadas adecuadas, por ejemplo si quiero el sprite(2, 3) se agregaría así:

Código (javascript) [Seleccionar]
ctx.drawImage(img, 64*1, 64*2, 64, 64, 0, 0, 64, 64)

- El primer argumento es la imagen <img src="https://i.stack.imgur.com/gZ3c5.png">
- El segundo es la coordenada "x" en pixeles del sprite a extraer, se suele multiplicar por el tamaño del sprite para hallar la columna adecuada
- El tercero es la coordenada "y" en pixeles del sprite a extraer, se suele multiplicar por el tamaño del sprite para hallar la fila adecuada
- El cuarto y quinto son el tamaño en pixeles ancho y alto respectivamente del sprite a extraer desde el Sprite Sheet
- El sexto y séptimo son las coordenas destino
- El octavo y el noveno son los tamaños que tendrá el sprite dibujado en el canvas.

Pero si quieres trabajar con un solo sprite y transformarlo, tienes la opción de guardar el estado de tu canvas (ctx.save()), luego voltear el canvas ya sea vertical u horizontalmente, dibujar tu sprite en las coordenadas adecuadas considerando que el canvas está volteado para al final restaurar tu canvas con canvas.restore()

- El siguiente ejemplo muestra como dibujar una imagen (sprite) de 300x150 volteado horizontalmente en un canvas de 800x600

Código (javascript) [Seleccionar]
ctx.save()
ctx.translate(800,0)
ctx.scale(-1,1)
ctx.drawImage(img,800-300,0)
ctx.restore()