elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al generar un exe de cpp
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al generar un exe de cpp  (Leído 4,042 veces)
ahaugas

Desconectado Desconectado

Mensajes: 70



Ver Perfil
Problema al generar un exe de cpp
« en: 23 Julio 2012, 19:29 pm »

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:
Código:
// 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 Desconectado

Mensajes: 74



Ver Perfil
Re: Problema al generar un exe de cpp
« Respuesta #1 en: 23 Julio 2012, 20:39 pm »

Cual es tu problema especificamente? deja mas datos.


En línea

Odio los tipos de variable de Windows.
ahaugas

Desconectado Desconectado

Mensajes: 70



Ver Perfil
Re: Problema al generar un exe de cpp
« Respuesta #2 en: 23 Julio 2012, 21:31 pm »

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 Desconectado

Mensajes: 74



Ver Perfil
Re: Problema al generar un exe de cpp
« Respuesta #3 en: 23 Julio 2012, 22:08 pm »

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 Desconectado

Mensajes: 70



Ver Perfil
Re: Problema al generar un exe de cpp
« Respuesta #4 en: 23 Julio 2012, 22:23 pm »

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:
Citar
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 Desconectado

Mensajes: 70



Ver Perfil
Re: Problema al generar un exe de cpp
« Respuesta #5 en: 23 Julio 2012, 23:08 pm »

me aparece un mensaje de error al compilar:
Citar
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Generar Archivos ZIP en VB6.0
Programación Visual Basic
cero_kill_byte 3 9,978 Último mensaje 20 Octubre 2005, 15:25 pm
por _Sergi_
GENERAR MAP
Programación C/C++
Eneas87 0 2,323 Último mensaje 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,716 Último mensaje 1 Septiembre 2010, 22:39 pm
por Perestroika
[Resuelto] Problema al generar PDF
PHP
rojasevans 1 2,130 Último mensaje 1 Mayo 2018, 02:51 am
por #!drvy
Problema al generar la media de un array
PHP
splendid37 0 1,568 Último mensaje 13 Enero 2019, 19:13 pm
por splendid37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines