Título: [FASM] Problema con matrices Publicado por: Yuki en 8 Abril 2016, 22:29 pm Buenas, estoy creando un proyecto en ensamblador bastante interesante, pero debido a algo no puedo avanzar.
Estoy tratando de buscar las DLLs del la ruta actual del programa en ejecución y almacenarlos en una Matriz, pero cuando quiero utilizarlos, solo aparece el nombre de una sola DLL en la matriz de longitud 2. Código: start: En la ruta del programa hay 2 DLLs, "Biblioteca.dll y Libreria.dll", a travez de FindFirstFile obtengo Biblioteca.dll y la almacena en MatrizArchivos+EBX (en el primer sondeo es 0) y en la segunda DLL "Libreria.dll" se obtiene a travez de FindNextFile, si este no produjo error retorna a BuscarDlls, EBX se establece en 4 y se añade el puntero al nombre de la DLL en MatrizArchivos+EBX (EBX = 4). Pero cuando trato de visualizar mediante un MessageBox, solo aparece "Libreria.dll" en ambas matrices. ¿Que estoy haciendo mal? Título: Re: [FASM] Problema con matrices Publicado por: Yuki en 10 Abril 2016, 02:22 am Disculpen la auto-respuesta, se cual es el problema, la Matriz "MatrizArchivos" apunta, en ambas matrices al mismo puntero de cadena.
MatrizArchivos[0] = &401FD5 ' Libreria.dll MatrizArchivos[1] = &401FD5 ' Libreria.dll La pregunta ahora es la siguiente ¿como puedo hacer para copiar en la matriz diferentes cadenas? Título: Re: [FASM] Problema con matrices Publicado por: fary en 10 Abril 2016, 21:46 pm Tienes que crear la siguiente estructura:
Array -> Dirección donde se encuentran los punteros de los datos [Array] -> apunta al primer elemento del array [Array+4] -> Apunta al siguiente elemento [Array+8] -> Apunta al siguiente elemento Y así sucesivamente... No sé si me he explicado bién :-\ saludos. Título: Re: [FASM] Problema con matrices Publicado por: Yuki en 11 Abril 2016, 00:24 am Tienes que crear la siguiente estructura: Te explicaste bién, pero el problema es que cada elemento del array contiene el mismo valor (dirección de la cadena "Libreria.dll"), la pregunta es como hacer para copiar la cadena obtenida por WFD.cFileName, crear nuevos punteros y aplicarlos a los elementos.Array -> Dirección donde se encuentran los punteros de los datos [Array] -> apunta al primer elemento del array [Array+4] -> Apunta al siguiente elemento [Array+8] -> Apunta al siguiente elemento Y así sucesivamente... No sé si me he explicado bién :-\ saludos. Título: Re: [FASM] Problema con matrices Publicado por: fary en 11 Abril 2016, 16:42 pm Lo único que tienes que hacer es reservar memoria con LocalAlloc ó malloc y guardar el puntero en tu estructura de punteros.
Título: Re: [FASM] Problema con matrices Publicado por: Yuki en 14 Abril 2016, 06:55 am Lo único que tienes que hacer es reservar memoria con LocalAlloc ó malloc y guardar el puntero en tu estructura de punteros. Suponia que era algo así, pero no queria tener que usar estas apis, pero bueno, gracias! tema resuelto. |