solucionar punto pero instalar error entrada encontro dllregisterserver dllinstall descargar windows dll cmd 32bit-64bit

windows - instalar - se cargo el modulo pero no se encontro el punto de entrada dllinstall



Comando de Windows para saber si un archivo.dll es de 32 bits o de 64 bits. (3)

La capacidad que está buscando está disponible de forma nativa en sistemas UNIX; usa el comando ''file''. Puede usar ''archivo'' en sistemas Windows si instala Cygwin u otro de los emuladores UNIX.

Estoy buscando un comando en windows cmd para decirme si un determinado archivo dll es de 32 bits o 64 bits

¿Hay algo como esto en Windows?


Puede usar la biblioteca dbghelp para obtener los encabezados de las imágenes. Luego puede leer la información que necesita de FileHeader .

Aquí hay un código de muestra. Por favor perdone el manejo de error bastante cojo. Simplemente lo dejé caer rápidamente para ilustrarlo, y ni siquiera estoy remotamente fluido en C ++.

#include <Windows.h> #include <Dbghelp.h> #include <string> #include <iostream> using namespace std; bool GetImageFileHeaders(wstring fileName, IMAGE_NT_HEADERS &headers) { HANDLE fileHandle = CreateFile( fileName.c_str(), GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); if (fileHandle == INVALID_HANDLE_VALUE) return false; HANDLE imageHandle = CreateFileMapping( fileHandle, nullptr, PAGE_READONLY, 0, 0, nullptr ); if (imageHandle == 0) { CloseHandle(fileHandle); return false; } void *imagePtr = MapViewOfFile( imageHandle, FILE_MAP_READ, 0, 0, 0 ); if (imagePtr == nullptr) { CloseHandle(imageHandle); CloseHandle(fileHandle); return false; } PIMAGE_NT_HEADERS headersPtr = ImageNtHeader(imagePtr); if (headersPtr == nullptr) { UnmapViewOfFile(imagePtr); CloseHandle(imageHandle); CloseHandle(fileHandle); return false; } headers = *headersPtr; UnmapViewOfFile(imagePtr); CloseHandle(imageHandle); CloseHandle(fileHandle); return true; } int main(int argc, char* argv[]) { IMAGE_NT_HEADERS headers; if (GetImageFileHeaders(L"C://windows//system32//user32.dll", headers)) { if (headers.FileHeader.Machine == IMAGE_FILE_MACHINE_I386) cout << "x86"; else if (headers.FileHeader.Machine == IMAGE_FILE_MACHINE_IA64) cout << "IA64"; else if (headers.FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64) cout << "x64"; else cout << "Machine not recognised"; } return 0; }

Para vincular esto, necesita agregar dbghelp.lib a las dependencias adicionales de su proyecto. Para obtener más información acerca de los detalles detrás de esto, consulte la documentación de MSDN para las diversas llamadas a API que se utilizan.


DUMPBIN se incluye con Visual C ++ y puede proporcionar esta información con el /HEADERS .

Ejemplo de salida de una imagen de 32 bits:

FILE HEADER VALUES 14C machine (i386) 6 number of sections 306F7A22 time date stamp Sun Oct 01 22:35:30 1995 0 file pointer to symbol table 1D1 number of symbols E0 size of optional header 302 characteristics Executable 32 bit word machine Debug information stripped