Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD5

[es] :: C/C++ programiranje :: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD5

[ Pregleda: 2851 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

feniks-sd

Član broj: 163192
Poruke: 173
*.adsl.net.t-com.hr.



+2 Profil

icon Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 16:30 - pre 181 meseci
Imam jedan program napisan na linuxu pa ga prabacujem na win. U tome imam nekih problema koje ne znam sam riješiti.
U prvom slučaju program se noramlno kompajlira dok na win QT prijavljuje neke greške.

Code:


void ASCIIonly(char *text)
{
    for (int i=0; i<strlen(text); i++)  // u ovoj liniji detektirana greška
    {
        if ((unsigned char)text[i]<32 || (unsigned char)text[i]>126)    //not printable ASCII
        {
            //terminating the string
            text[i] = 0;
            break;
        }
    }
}



Greška koja se prijavljuje : comparison between signed and unsigned integer expressions

Ima li netko ideju kako da to riješim.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 16:56 - pre 181 meseci
Zameni int sa size_t, to je valjda povratna vrednost funkcije strlen.

Uzgred, bolje je da u for petlji imesto uslova i < strlen(text) staviš text[i ] != '\0', jer nema potrebe da se strlen izvršava u svakoj iteraciji.
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.rcub.bg.ac.yu.



+9 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 17:19 - pre 181 meseci
To bi trebalo da je samo warning i to u većini slučajeva bezopasan, ali Mihajlo ti reče šta da uradiš.
size_t je obično definisan kao unsigned int.

Inače, za mene je nova informacija da C++ "ne radi" na Windowsu...
 
Odgovor na temu

feniks-sd

Član broj: 163192
Poruke: 173
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 20:08 - pre 181 meseci
Malo je naslov nezgodno sročen, ali ipak mi je pomoglo. Međutim pojavio se još jedan problem. Kako se ovo može drugačije riješiti.

Code:
 MD5((unsigned char*)user_magic, strlen(user_magic), key); 


Ovaj dio je izvađen iz ovoga konteksta .

Code:
   static const char magic_string [] = "283i4jfkai3389";    // :)
        unsigned char key[MD5_DIGEST_LENGTH];
        char user_magic[200];
        strcpy(user_magic, szUserName);
        strcat(user_magic, magic_string);
       MD5((unsigned char*)user_magic, strlen(user_magic), key);
..
..


A pojavi se ova greška : C:/Qt/qt/QT_apl/criptold2/main.cpp: undefined reference to `MD5'
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 21:33 - pre 181 meseci
Malo je čudno da ti ništa na javlja za MD5_DIGEST_LENGTH, nego samo za MD5. U svakom slučaju treba da uključiš neki heder sa #include, možda upravo #include "md5.h", ili nešto slično. Taj heder ne ide uz C kompajler, moraš ti da ga obezbediš, najčešće zajedno sa .c, ili .lib, ili .dll, koji ide uz taj heder.

Moram da pitam, kako to da C znaš na nivou apsolutnog početnika, a s druge strane se baviš kriptografijom?
 
Odgovor na temu

feniks-sd

Član broj: 163192
Poruke: 173
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 21:51 - pre 181 meseci
Citat:
Mihajlo Cvetanović: Malo je čudno da ti ništa na javlja za MD5_DIGEST_LENGTH, nego samo za MD5. U svakom slučaju treba da uključiš neki heder sa #include, možda upravo #include "md5.h", ili nešto slično. Taj heder ne ide uz C kompajler, moraš ti da ga obezbediš, najčešće zajedno sa .c, ili .lib, ili .dll, koji ide uz taj heder.


Postoji lib "md5.h" koji je uključen u kod inače bi kompajler prijavio grešku ranije.

Citat:

Moram da pitam, kako to da C znaš na nivou apsolutnog početnika, a s druge strane se baviš kriptografijom?


Cijeli taj kod radi na ubuntu linux na kojem je i nastao osim dijela o kriptografiji koji je ranije napisan od nepoznatoga autora kao teoretska rješenja. Kada to nebi radilo na linuxu, posumnjao bi da je u tome problem. Jedino što mi pada da su neke stvari drugačije riješene na linuxu što se tiće samog lib za openssl/md5. Nažalost u tom imam premalo iskustva da bi sam to mogao i otkriti.

 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD504.06.2009. u 23:25 - pre 181 meseci
Malo sam guglao sa "undefined reference to `MD5'" i izgleda da se to odnosi na fazu linkovanja, a ne kompajliranja. Kako ti to bilduješ, kojom komandnom linijom? Probaj i ti malo da potražiš to na guglu, možda nađeš nešto korisno.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.rs.



+395 Profil

icon Re: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD505.06.2009. u 09:00 - pre 181 meseci
Ako ti treba MD5 za Win pogledaj zip u spajalici :
Ubacis md5.h i md5.cpp u projekat i koristis f-je :
Code:
 
char* PrintMD5(uchar md5Digest[16]);
char* MD5String(char* szString);
char* MD5File(char* szFilename);

Viva lollapalooza
Prikačeni fajlovi
 
Odgovor na temu

[es] :: C/C++ programiranje :: Portovanje koda sa Linux-a na Win QT, unsigned char, size_t, MD5

[ Pregleda: 2851 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.