Bonjour à tous,

Pour l'un de mes projets, j'ai besoin d'utiliser la librairie "libpng" qui permet la lecture/écriture d'images au format PNG. (j'utilise VC++ 2005 Express)

Dans un premier, pour tester cette librairie, j'ai écrit un programme qui lit simplement la taille de ce fichier (width & height)... Voici le programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdlib.h>
#include <stdio.h>
#include "../lpng/png.h"
 
using namespace std;
 
int main()
{
	FILE * fp;
    //typedef byte png_byte;
    png_byte magic[8]; 
    png_uint_32 width, height;
 
    /*---- open image file ----*/
    fp = fopen("lena_512_color.jpg","r");
    if (!fp) //error during file opening
        return 0;
 
    /*---- read magic number ----*/
    fread(magic, 1, sizeof(magic), fp);
    /* check magic number - PNG ? */
    if (!png_check_sig(magic, sizeof(magic)))
    {
        fclose(fp);
		return 0;
    }
 
    /*---- struct png_struct & png_info creation ----/
    /* create a png_struct struct */
    png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 
    if (!png_ptr)
    {
        fclose(fp);
        return 0;
    }
 
    /* create a png_info struct */
    png_infop info_ptr = png_create_info_struct (png_ptr);
    if (!info_ptr)
    {
        fclose (fp);
        png_destroy_read_struct (&png_ptr, NULL, NULL);
    } 
 
    /*---- initialisation ----*/
    /* setup libpng for using standard C fread() function with our FILE pointer */
    png_init_io (png_ptr, fp);
 
    /* tell libpng that we have already read the magic number */
    png_set_sig_bytes (png_ptr, sizeof (magic));
 
    /* read png info */
    png_read_info (png_ptr, info_ptr);
 
    /* get width & height information */
    width  = png_get_image_width(png_ptr, info_ptr);
    height = png_get_image_height(png_ptr, info_ptr);
 
    /* display this information */
    printf("Width = %u - Height = %u \n", width, height);
	return 1;
}
Et lors de la compilation, j'obtiens une erreur "LNK2019" pour chaque fonction de la libraire "libpng"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
1>Linking...
1>essai.obj : error LNK2019: unresolved external symbol _png_get_image_height referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_get_image_width referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_read_info referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_set_sig_bytes referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_init_io referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_destroy_read_struct referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_create_info_struct referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_create_read_struct referenced in function _main
1>essai.obj : error LNK2019: unresolved external symbol _png_check_sig referenced in function _main
Je précise que j'ai ajouté le chemin de mes différents include au bon endroit (VC++ directory). De plus lors de la compilation il trouve bien les fichiers .h.

Quelqu'un aurait-il une idée de l'origine du problème? Je viens de passer 2 jours sans aucune avancée...

Merci d'avance...

Arnaud