Autor
|
Tema: Problema al generar un exe de cpp (Leído 3,993 veces)
|
ahaugas
Desconectado
Mensajes: 70
|
hola he encontrado un archivo cpp en un sitio y me gustaría compilarlo a un exe, pero la versión de visual studio 2008 no me deja. me podeis echar una mano? la verdad no se nada de este lenguaje pero me viene bien este ejecutable para sincronizar los archivos del servidor con el local: dejo el source: // by SlyBit (c) 07.2008 /DownloadFile.cpp/ #include "winsock2.h" #include <windows.h> #pragma comment(lib, "Ws2_32.lib") #pragma comment(linker, "/ENTRY:Main") #define HOST_NAME "misitio.com" #define URL_NAME "/pub/21/files/RawRead.rar" #define FILE_NAME "RawRead.rar" #define HEADER_SIZE 400 // Возводим число x в положительную целочисленную степень #define DEGREE(Val, Deg) if(!Deg) { Val = 1; } else for(int i1=2, i2=Val; i1<=Deg; i1++) { Val *= i2; }
// Переводим число Str, представленное в виде строки в числовой вид Int #define STR_TO_INT(Str, Int) for(int l=0, s=10; l<strlen(Str); l++, s=10) { DEGREE(s, (strlen(Str)-1-l)); Int += ((BYTE)Str[l]-0x30)*s; } PCHAR WINAPI HTTPSendReceiveData(PVOID pInData, DWORD dwInDataSize, PCHAR pIpAddress, PDWORD pOutSizeSize) { SOCKET ConnectSocket; sockaddr_in ClientService; INT nReceiveBytes, i, j = 0, nCurr; CHAR szHeader[HEADER_SIZE] = "\0", szVal[10] = "\0"; PCHAR pOutData = 0; if(INVALID_SOCKET == (ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))) { return 0; } ClientService.sin_family = AF_INET; ClientService.sin_port = htons(80); ClientService.sin_addr.s_addr = inet_addr(pIpAddress); if(SOCKET_ERROR == connect(ConnectSocket, (SOCKADDR*)&ClientService, sizeof(ClientService))) { closesocket(ConnectSocket); return 0; } if(SOCKET_ERROR == send(ConnectSocket, (PCHAR)pInData, dwInDataSize, 0)) { closesocket(ConnectSocket); return 0; } // Получаем заголовок ответа if(SOCKET_ERROR == recv(ConnectSocket, szHeader, HEADER_SIZE, 0)) { closesocket(ConnectSocket); return 0; } for(i=0; i<HEADER_SIZE; i++) { // Получаем размер данных if(!memcmp("Content-Length: ", szHeader+i, strlen("Content-Length: ")-1)) { do { szVal[j] = szHeader[i+strlen("Content-Length: ")+j]; j++; } while(szHeader[i+strlen("Content-Length: ")+j] != '\r'); STR_TO_INT(szVal, *pOutSizeSize); } // Получаем указатель на начало файла в ответе if(!memcmp("\r\n\r\n", szHeader+i, strlen("\r\n\r\n")-1)) { i += strlen("\r\n\r\n"); break; } } if((HEADER_SIZE-1 == i) || !*pOutSizeSize) { return 0; } if(!(pOutData = (PCHAR)VirtualAlloc(0, *pOutSizeSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE))) { return 0; } if(HEADER_SIZE-i >= *pOutSizeSize) { memcpy(pOutData, szHeader+i, *pOutSizeSize); } else { nCurr = HEADER_SIZE-i; memcpy(pOutData, szHeader+i, nCurr); // Получаем оставшиеся данные while(nReceiveBytes = recv(ConnectSocket, pOutData+nCurr, *pOutSizeSize-nCurr, 0)) { if(nReceiveBytes == SOCKET_ERROR) { closesocket(ConnectSocket); return 0; } nCurr += nReceiveBytes; } } closesocket(ConnectSocket); return pOutData; } BOOL WINAPI GetIpByHostName(PCHAR pHostName, PCHAR pIp, DWORD dwIpSize) { hostent *pHosten; if(!(pHosten = gethostbyname(pHostName))) { return 0; } if(lstrlen(inet_ntoa(*(in_addr*)*pHosten->h_addr_list)) > dwIpSize) { return 0; } lstrcpy(pIp, inet_ntoa(*(in_addr*)*pHosten->h_addr_list)); return 1; } BOOL WINAPI DownloadFile(PCHAR pFileName, PCHAR pHostName, PCHAR pUrl) { CHAR szIp[17], szSendData[300]; PCHAR pFile = 0; HANDLE hFile; DWORD dwFileSize = 0, dwRetSize; if(!GetIpByHostName(pHostName, szIp, 17)) { return 0; } wsprintf(szSendData, "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n", pUrl, pHostName); if(!(pFile = HTTPSendReceiveData(szSendData, strlen(szSendData), szIp, &dwFileSize))) { return 0; } if(INVALID_HANDLE_VALUE == (hFile = CreateFile(pFileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0))) { VirtualFree(pFile, 0, MEM_RELEASE); return 0; } if(!WriteFile(hFile, pFile, dwFileSize, &dwRetSize, 0)) { VirtualFree(pFile, 0, MEM_RELEASE); CloseHandle(hFile); return 0; } VirtualFree(pFile, 0, MEM_RELEASE); CloseHandle(hFile); return 1; } VOID WINAPI Main() { WSAData wsaData; if(NO_ERROR != WSAStartup(MAKEWORD(2,2), &wsaData)) { ExitProcess(0); } if(DownloadFile(FILE_NAME, HOST_NAME, URL_NAME)) { MessageBox(0, "DownloadFile Ok", 0, 0); } else { MessageBox(0, "DownloadFile Error", 0, 0); } ExitProcess(0); }
gracias de antemano
|
|
|
En línea
|
no subestimar al mas debil ya que tendra otras experiencias
|
|
|
bemone
Desconectado
Mensajes: 74
|
Cual es tu problema especificamente? deja mas datos.
|
|
|
En línea
|
Odio los tipos de variable de Windows.
|
|
|
ahaugas
Desconectado
Mensajes: 70
|
pues directamente al abrir el archivo cpp y mandarlo a compilar pues no me deja la opcion, y al crear un nuevo proyecto tampoco.
la verdad desconozco para compilar este archivo y no se que dependencias tiene
gracias
|
|
|
En línea
|
no subestimar al mas debil ya que tendra otras experiencias
|
|
|
bemone
Desconectado
Mensajes: 74
|
pues directamente al abrir el archivo cpp y mandarlo a compilar pues no me deja la opcion, y al crear un nuevo proyecto tampoco.
la verdad desconozco para compilar este archivo y no se que dependencias tiene
gracias
Es un proyecto win32, ese creaste?
|
|
|
En línea
|
Odio los tipos de variable de Windows.
|
|
|
ahaugas
Desconectado
Mensajes: 70
|
si he creado un proyecto win32 de consola y he creado nuevo archivo descargas.cpp luego he pegado dentro el contenido, pero me tira errores. alguna idea? los errores son: 1>------ Operación Generar iniciada: proyecto: downloader, configuración: Debug Win32 ------ 1>Compilando... 1>downloader.cpp 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(61) : warning C4018: '<' : no coinciden signed/unsigned 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(61) : warning C4018: '<=' : no coinciden signed/unsigned 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(79) : warning C4018: '>=' : no coinciden signed/unsigned 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(108) : error C2664: 'lstrlenW' : no se puede convertir el parámetro 1 de 'char *' a 'LPCWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(112) : error C2664: 'lstrcpyW' : no se puede convertir el parámetro 1 de 'PCHAR' a 'LPWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(128) : error C2664: 'wsprintfW' : no se puede convertir el parámetro 1 de 'CHAR [300]' a 'LPWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(134) : error C2664: 'CreateFileW' : no se puede convertir el parámetro 1 de 'PCHAR' a 'LPCWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(160) : error C2664: 'MessageBoxW' : no se puede convertir el parámetro 2 de 'const char [16]' a 'LPCWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>c:\users\84k3r-484u645\documents\visual studio 2008\projects\downloader\downloader\downloader.cpp(162) : error C2664: 'MessageBoxW' : no se puede convertir el parámetro 2 de 'const char [19]' a 'LPCWSTR' 1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función 1>El registro de compilación se guardó en el "file://c:\Users\84K3R-484U645\Documents\Visual Studio 2008\Projects\downloader\downloader\Debug\BuildLog.htm" 1>downloader - 6 errores, 3 advertencias ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
|
|
|
En línea
|
no subestimar al mas debil ya que tendra otras experiencias
|
|
|
ahaugas
Desconectado
Mensajes: 70
|
me aparece un mensaje de error al compilar: Errores de compilacion. ¿desea continuar y ejecutar la ultima version generada correctamente?
pero el caso es que nunca se ha generado correctamente y la verdad no tengo ni idea de que puede ser. lo unico que puedo pensar es que visual estudio 2008 no le vale y necesita uno superior o alguna version menor. la verdad necesito hacer este ejecutable porque estoy haciendo un plugin para una web y me gustaria que sea mas comodo. gracias.
|
|
|
En línea
|
no subestimar al mas debil ya que tendra otras experiencias
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Generar Archivos ZIP en VB6.0
Programación Visual Basic
|
cero_kill_byte
|
3
|
9,883
|
20 Octubre 2005, 15:25 pm
por _Sergi_
|
|
|
GENERAR MAP
Programación C/C++
|
Eneas87
|
0
|
2,285
|
29 Mayo 2010, 18:29 pm
por Eneas87
|
|
|
Problema a la hora de detectar BSSID, generar diccionario y realizar ataque
Wireless en Windows
|
Perestroika
|
0
|
3,701
|
1 Septiembre 2010, 22:39 pm
por Perestroika
|
|
|
[Resuelto] Problema al generar PDF
PHP
|
rojasevans
|
1
|
2,104
|
1 Mayo 2018, 02:51 am
por #!drvy
|
|
|
Problema al generar la media de un array
PHP
|
splendid37
|
0
|
1,546
|
13 Enero 2019, 19:13 pm
por splendid37
|
|