• Miércoles 20 de Noviembre de 2024, 12:25

Mostrar Mensajes

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


Mensajes - Eternal Idol

Páginas: 1 ... 203 204 [205]
5101
Visual Basic 6.0 e inferiores / Re: Buscar Un Archivo Desde La Aplicacion
« en: Miércoles 9 de Junio de 2004, 17:45 »
Ah, no es otra opción esa, si se hace como tu código yo me confundí.
Pensé que el archivo podía estar en cualquier parte del disco rígido.

Si lo que quiere hacer es saber si un archivo existe teniendo un path definido tu código es el que tiene que usar.

 :ph34r:  :comp:  :hola:

5102
Visual Basic 6.0 e inferiores / Re: Buscar Un Archivo Desde La Aplicacion
« en: Miércoles 9 de Junio de 2004, 17:29 »
Para buscar archivos con la API de Windows se usan estas funciones:

FindFirstFile
FindNextFile
FindClose

A la busqueda le podes pasar comodines como *.

 :ph34r:  :comp:  :hola:

5103
Visual Basic 6.0 e inferiores / Re: Desintalacion Programa
« en: Miércoles 9 de Junio de 2004, 17:09 »
Podes usar las funciones del registro del sistema de la API de Windows.

 :ph34r:

MSDN

5104
C/C++ / Re: Diferencias Entre Lenguajes :p
« en: Miércoles 9 de Junio de 2004, 17:00 »
Fue lo que dije: Lo demas son compiladores, hay compiladores de C y C++ para el S.O. que se te ocurra.

El S.O. que se te ocurra puede ser MS-DOS, MS-Windows, Linux y veinte mas aproximadamente.

 :ph34r:  :comp:

5105
C/C++ / Re: Diferencias Entre Lenguajes :p
« en: Miércoles 9 de Junio de 2004, 14:01 »
C es un lenguaje, C++ otro.

Lo demas son compiladores, hay compiladores de C y C++ para el S.O. que se te ocurra.

 :ph34r:

5106
C/C++ / Re: Calloc Vs Malloc
« en: Miércoles 9 de Junio de 2004, 13:56 »
new y delete solo tienen sentido para crear objetos ya que el compilador llama a su constructor/destructor; el operador new en si no es más que un wrapper de malloc (que a su vez en Windows es un wrapper de HeapAlloc).


Run Time Library de VC++:

void * operator new( unsigned int cb )
{
        return _nh_malloc( cb, 1 );
}


 :ph34r:

5107
Visual C++ / Re: Obtener Valor De Un Pixel
« en: Miércoles 9 de Junio de 2004, 13:15 »
fap1603 tu información es correcta pero incompleta, así es como se lee un BMP de 24 bits, pero me parecee que emisario estaba tratando de leer un BMP de 8 bits.

La paleta tiene 1024 bytes, 256*4, 256 colores con R,G,B y un reservado que se interpretan con cada BYTE del bitmap.

 :ph34r:

5108
Visual C++ / Re: Dialogo Abrir De La Api
« en: Miércoles 9 de Junio de 2004, 12:50 »
Menos mal jeje  :P

 :ph34r:

5109
Visual C++ / Re: Dialogo Abrir De La Api
« en: Miércoles 9 de Junio de 2004, 12:24 »
OPENFILENAME Abrir;
  char *file = (char*)MALLOC(1024);
  char *path = (char*)MALLOC(1024);
  ZeroMemory(&Abrir, sizeof(OPENFILENAME));
  Abrir.lStructSize = sizeof(OPENFILENAME);
  Abrir.hwndOwner = NULL;
  Abrir.nFilterIndex = 1;
  Abrir.lpstrFile = path;
  Abrir.nMaxFile = 1024;
  Abrir.lpstrFileTitle = file;
  Abrir.nMaxFileTitle = 1024;
  Abrir.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  Abrir.lpstrFilter = "Texto\0*.txt\0Todos los archivos\0*.*\0";
  Abrir.lpstrInitialDir = 0;
  Abrir.lpstrTitle = "Selecciona un archivo\0\0";
  DWORD Abierto = GetOpenFileName(&Abrir);

  if (Abierto != 0) { MessageBox(0,path,path,0); } //aca esta el archivo que seleccionaron
  free(file);
  free(path);

 :ph34r:

5110
Visual C++ / Re: Ayuda Con List Y Listbox
« en: Miércoles 9 de Junio de 2004, 12:15 »
Me paso no hace mucho así que tengo la solución, la ListView es un common control y tenes que inicializarlo.

#include <commctrl.h>
INITCOMMONCONTROLSEX controles;
controles.dwSize = sizeof(controles);
controles.dwICC = ICC_LISTVIEW_CLASSES ;
InitCommonControlsEx(&controles);


 :ph34r:

5111
Visual C++ / Re: Esperar A Un Evento Sin Bloquear El Programa
« en: Miércoles 9 de Junio de 2004, 12:10 »
Si creas esa función como thread no bloquea el resto de la aplicación.

Ejemplito:


//creamos un thread con la funcion MergeIndex()
DWORD dwThreadId, dwThrdParam = 1;
dwThrdParam = (DWORD)Archivo;
CreateThread(NULL,NULL,MergeIndex,(void*)dwThrdParam,0,&dwThreadId);

DWORD WINAPI MergeIndex(LPVOID lpParam)
{
  //aca hacer lo que se quiera
  while(1)
  {
    //por ejemplo
  }
}

 :ph34r:

5112
C/C++ / Re: C++ Es El Mejor Lenguaje Para Programar
« en: Sábado 5 de Junio de 2004, 11:11 »
Si exceptuamos al lenguaje ensamblador de cada microprocesador estoy totalmente de acuerdo, C\C++ es el lenguaje por excelencia de la industria de la informatica.

 :ph34r:  :hola:

PD. La votacion es un tanto estupida con todas las opciones iguales, no?

5113
C/C++ / Re: Conio.h En Microsoft Visual C++
« en: Viernes 4 de Junio de 2004, 17:50 »
Esas funciones antiguas son las de DOS? Si es asi lee este F.A.Q. que puse en mi foro:

http://www.c0d3rz.com.ar/foro/viewtopic.php?t=56


 :hola:

Saludos,
Mariano.

5114
Publicaciones y e-books / Un Par De E-books
« en: Viernes 4 de Junio de 2004, 17:23 »
En la seccion de e-books de http://www.c0d3rz.com.ar hay un par de libros de C\C++ y ensamblador.

 :ph34r:

Saludos,
Mariano.

5115
Programación de Videojuegos / Re: Por Donde Empiezo?
« en: Viernes 4 de Junio de 2004, 16:23 »
C++ y DirectX es lo mas extendido en la industria del videojuego profesional.

http://www.gamedev.net/ aca tenes de todo.

 :hola:  :comp:

5116
General / C0d3rz.com.ar
« en: Viernes 4 de Junio de 2004, 11:40 »
Bueno, les dejo el link de mi foro donde se tratamos temas de C\C++ y ensamblador. Hay varios tutoriales y e-books también.

 B)

Saludos,
Mariano.

5117
Smalltalk / Re: Ayuda
« en: Viernes 4 de Junio de 2004, 11:30 »
Todo lo que hagas en Smalltalk es orientado a objetos, todos los elementos son objetos.

Te voy a dar un ejemplo del código que estoy aprendiendo en la Open University.


| tempVar nombres | "estas son variables temporales y todo lo que va entre comillas es un comentario"

nombres := Array 8.            "creamos un array de 8 elementos"
nombres at: 1 put: 'Juan'.     "le asignamos la cadena de caracteres Juan al primer elemento"
nombres at: 2 put: 'Pedro'.

tempVar := nombres at: 1.    "hacemos copia de Juan para no perder la informacion"

nombres at: 1 put: (nombres at: 2). "ponemos Pedro en el primer elemento"
nombres at: 2 put: tempVar "usando tempVar ponemos Juan en el segundo"

Saludos,
Mariano.

5118
ASM (Ensamblador) / [Artículo] Ensamblador y C++
« en: Viernes 4 de Junio de 2004, 11:09 »
Bueno supongo que todos saben que la mayoria de los compiladores de C++ permiten incluir instrucciones de ensamblador dentro del codigo fuente y estas son ensambladas directamente en el codigo objeto. A esto se le llama inline assembler generalmente.

Pero eso no es siquiera interesante; lo que si es muy interesante es la capacidad de escribir librerias (estaticas y dinamicas) tanto en ensamblador como en C++ (MASM y VC++) y linkearlas en ambos lenguajes.

Osea, que por ejemplo podemos crear una libreria en ensamblador y linkearla estaticamente en un programa de C++. Vamos a ver el ejemplo.

Codigo de la libreria de ensamblador (en rojo):


.386
.model stdcall,flat

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

CTEXT MACRO text:VARARG
    LOCAL TxtName
    .data
     TxtName BYTE text,0
    .code
  EXITM <OFFSET TxtName>
ENDM

SayLong PROTO number:DWORD

.code

  SayLong PROC number:DWORD
    LOCAL pointer:DWORD
    invoke GetProcessHeap
    invoke HeapAlloc,eax,HEAP_ZERO_MEMORY or HEAP_GENERATE_EXCEPTIONS,1024
    mov pointer,eax
    invoke wsprintf,pointer,CTEXT("%d"),number
    invoke MessageBox,0,pointer,pointer,0
    invoke GetProcessHeap
    invoke HeapFree,eax,0,pointer
    ret
  SayLong ENDP

End



Tranquilidad que ahora paso a explicar el codigo anterior.

.386 es una directiva que le indica a MASM que nuestro codigo va optimizado para la arquitectura 386

.model stdcall,flat es una directiva que le indica a MASM que nuestro codigo usa stdcall (convencion de funciones que utiliza la API de Windows) y un modelo de memoria plano (el unico posible en Windows).

Los includes justamente incluyen bibliotecas al estilo de los .H de C++, para conseguir estas bibliotecas hay que tener MASM32 MASM32 instalado y con el path configurado.

Los includelib nos ahorran pasarle en la linea de comandos parametros de librerias que vamos a linkear, tambien hay que tener el MASM32 o sino crearlas (eso lo dejamos para otro tutorial).

El macro CTEXT nos permite utilizar texto al modo de C++ usando CTEXT("TEXTO") cosa que no es posible directamente en ensamblador.

La funcion SayLong simplemente muestra un MessageBox con el numero que hayamos especificado como parametro.

Ustedes diran que carajo hacemos con este codigo, bueno aca esta la respuesta, ensamblamos y linkeamos con MASM:

ml /c /Cp /coff asm_called.asm
lib asm_called.obj

Con eso conseguimos el archivo asm_called.obj que es el codigo objeto y el archivo asm_called.lib que es el codigo ejecutable que vamos a linkear desde C++.

Ahora el codigo de C++ que llama a la funcion de ensamblador (en rojo como siempre)


#include <windows.h>
extern "C" void __stdcall SayLong(DWORD number);

void main()
{
  SayLong(50);
}



Muy simple este codigo, muy simple. Declara la funcion externa SayLong con el paso de paremetros de stdcall (la misma que usamos en ensamblador). Y la llama desde un main con un parametro de 50.

Compilamos y linkeamos con VC++:

cl -c calling_asm.cpp
link calling_asm.obj asm_called.lib kernel32.lib user32.lib

Ahora obtenemos un archivo objeto calling_asm.obj y un archivo ejecutable calling_asm.exe.

Ejecuten el archivo calling_asm.exe y veran que aparece un MessageBox con el numero 50, la rutina SayLong (programa en ensamblador) fue llamada desde C++.

Espero que les haya gustado el tutorial y hayan aprendido algo nuevo.

Saludos,
Mariano.

Autor: Mariano Ventaja

http://www.c0d3rz.com.ar

Descarga: http://www.c0d3rz.com.ar/foro/viewtopic.php?t=14

5119
Enlaces a Sitios sobre programación / c0d3rz
« en: Viernes 4 de Junio de 2004, 11:04 »
Foro de programación avanzada, C\C++ y ensamblador. Recursos como e-books y mucho más.

Autor: Mariano Ventaja

http://www.c0d3rz.com.ar

Páginas: 1 ... 203 204 [205]