Hello,

I'm developing a program in c++ with visual studio 2008 to acces to a data base and make pdf documents with the information. For this, i have chosen to use c++ with mysql-connector-c++ to acces to data base. I use the static library and it works perfect, and giving more information i had to change some properties:

(1)- Linker - General: Add the lib directory to "Aditional library directories"
(2)- Linker - Entrance/Input: Add files 'mysqlcppcon-static.lib' and 'libmysql.lib' to Aditional dependences.
(3)- C++ - General: Add include directory to "Aditional include directory"
(4)- C++ - Preprocessor: WIN32;NDEBUG;_CONSOLE;CPPCONN_PUBLIC_FUNC=

Then i, start with libharu library to create the pdf. First of all, i have tried to run an example of libharu page. I configurate the lib directory, the additional dependences and the include directory. It works perfect. The code used is:

Code:
/*
 * << Haru Free PDF Library 2.0.0 >> -- font_demo.c
 *
 * Copyright (c) 1999-2006 Takeshi Kanno <[email protected]>
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 * It is provided "as is" without express or implied warranty.
 *
 */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <setjmp.h>
#include "hpdf.h"

jmp_buf env;

#ifdef HPDF_DLL
void  __stdcall
#else
void
#endif
error_handler (HPDF_STATUS   error_no,
               HPDF_STATUS   detail_no,
               void         *user_data)
{
    printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
                (HPDF_UINT)detail_no);
    longjmp(env, 1);
}

const char *font_list[] = {
    "Courier",
    "Courier-Bold",
    "Courier-Oblique",
    "Courier-BoldOblique",
    "Helvetica",
    "Helvetica-Bold",
    "Helvetica-Oblique",
    "Helvetica-BoldOblique",
    "Times-Roman",
    "Times-Bold",
    "Times-Italic",
    "Times-BoldItalic",
    "Symbol",
    "ZapfDingbats",
    NULL
};

int main (int argc, char **argv)
{
    const char *page_title = "Font Demo";
    HPDF_Doc  pdf;
    char fname[256];
    HPDF_Page page;
    HPDF_Font def_font;
    HPDF_REAL tw;
    HPDF_REAL height;
    HPDF_REAL width;
    HPDF_UINT i;

    strcpy (fname, argv[0]);
    strcat (fname, ".pdf");

    pdf = HPDF_New (error_handler, NULL);
    if (!pdf) {
        printf ("error: cannot create PdfDoc object\n");
        return 1;
    }

    if (setjmp(env)) {
        HPDF_Free (pdf);
        return 1;
    }

    /* Add a new page object. */
    page = HPDF_AddPage (pdf);

    height = HPDF_Page_GetHeight (page);
    width = HPDF_Page_GetWidth (page);

    /* Print the lines of the page. */
    HPDF_Page_SetLineWidth (page, 1);
    HPDF_Page_Rectangle (page, 50, 50, width - 100, height - 110);
    HPDF_Page_Stroke (page);

    /* Print the title of the page (with positioning center). */
    def_font = HPDF_GetFont (pdf, "Helvetica", NULL);
    HPDF_Page_SetFontAndSize (page, def_font, 24);

    tw = HPDF_Page_TextWidth (page, page_title);
    HPDF_Page_BeginText (page);
    HPDF_Page_TextOut (page, (width - tw) / 2, height - 50, page_title);
    HPDF_Page_EndText (page);

    /* output subtitle. */
    HPDF_Page_BeginText (page);
    HPDF_Page_SetFontAndSize (page, def_font, 16);
    HPDF_Page_TextOut (page, 60, height - 80, "<Standerd Type1 fonts samples>");
    HPDF_Page_EndText (page);

    HPDF_Page_BeginText (page);
    HPDF_Page_MoveTextPos (page, 60, height - 105);

    i = 0;
    while (font_list[i]) {
        const char* samp_text = "abcdefgABCDEFG12345!#$%&+-@?";
        HPDF_Font font = HPDF_GetFont (pdf, font_list[i], NULL);

        /* print a label of text */
        HPDF_Page_SetFontAndSize (page, def_font, 9);
        HPDF_Page_ShowText (page, font_list[i]);
        HPDF_Page_MoveTextPos (page, 0, -18);

        /* print a sample text. */
        HPDF_Page_SetFontAndSize (page, font, 20);
        HPDF_Page_ShowText (page, samp_text);
        HPDF_Page_MoveTextPos (page, 0, -20);

        i++;
    }

    HPDF_Page_EndText (page);

    HPDF_SaveToFile (pdf, fname);

    /* clean up */
    HPDF_Free (pdf);

    return 0;
}
As it works perfect, i tried to introduce this test to my development program. Then i create a class to generate the pdf's and i tried to run the example as first objective. Then my problems start. I have configured the properties of the solution adapting the steps (1), (2) and (3) with the new directories and files. After that and after to repair all the compilation errors my code is this:

PDF.h
Code:
#ifndef _PDF_H_
#define _PDF_H_

#include <iostream>
#include <string.h>
#include <setjmp.h>
#include "hpdf.h"

jmp_buf env;

#ifdef HPDF_DLL
	void  __stdcall
#else
void
#endif

error_handler (HPDF_STATUS   error_no,
		 HPDF_STATUS   detail_no,
		 void         *user_data)
{
/* throw exception when an error has occured */
printf ("ERROR: error_no=%04X, detail_no=%d\n", (unsigned int)error_no,     
  (int)detail_no);
longjmp(env, 1);
}

class PDF{
private:
	//atributs

public:
	//operacions
	PDF();
	~PDF();
	int prova();
};

#endif
PDF.cpp
Code:
#include "PDF.h"

PDF::PDF(){

}

PDF::~PDF(){

}

int PDF::prova(){
	const char *font_list[] = {
		"Courier",
		"Courier-Bold",
		"Courier-Oblique",
		"Courier-BoldOblique",
		"Helvetica",
		"Helvetica-Bold",
		"Helvetica-Oblique",
		"Helvetica-BoldOblique",
		"Times-Roman",
		"Times-Bold",
		"Times-Italic",
		"Times-BoldItalic",
		"Symbol",
		"ZapfDingbats",
		NULL
	};
    const char *page_title = "Font Demo";
    HPDF_Doc  pdf;
    char fname[256];
    HPDF_Page page;
    HPDF_Font def_font;
    HPDF_REAL tw;
    HPDF_REAL height;
    HPDF_REAL width;
    HPDF_UINT i;

    strcpy (fname, "patata");
    strcat (fname, ".pdf");

	pdf = HPDF_New (error_handler, NULL);
    if (!pdf) {
        printf ("error: cannot create PdfDoc object\n");
        return 1;
    }

    /* Add a new page object. */
    page = HPDF_AddPage (pdf);

    height = HPDF_Page_GetHeight (page);
    width = HPDF_Page_GetWidth (page);

    /* Print the lines of the page. */
    HPDF_Page_SetLineWidth (page, 1);
    HPDF_Page_Rectangle (page, 50, 50, width - 100, height - 110);
    HPDF_Page_Stroke (page);

    /* Print the title of the page (with positioning center). */
    def_font = HPDF_GetFont (pdf, "Helvetica", NULL);
    HPDF_Page_SetFontAndSize (page, def_font, 24);

    tw = HPDF_Page_TextWidth (page, page_title);
    HPDF_Page_BeginText (page);
    HPDF_Page_TextOut (page, (width - tw) / 2, height - 50, page_title);
    HPDF_Page_EndText (page);

    /* output subtitle. */
    HPDF_Page_BeginText (page);
    HPDF_Page_SetFontAndSize (page, def_font, 16);
    HPDF_Page_TextOut (page, 60, height - 80, "<Standerd Type1 fonts samples>");
    HPDF_Page_EndText (page);

    HPDF_Page_BeginText (page);
    HPDF_Page_MoveTextPos (page, 60, height - 105);

    i = 0;
    while (font_list[i]) {
        const char* samp_text = "abcdefgABCDEFG12345!#$%&+-@?";
        HPDF_Font font = HPDF_GetFont (pdf, font_list[i], NULL);

        /* print a label of text */
        HPDF_Page_SetFontAndSize (page, def_font, 9);
        HPDF_Page_ShowText (page, font_list[i]);
        HPDF_Page_MoveTextPos (page, 0, -18);

        /* print a sample text. */
        HPDF_Page_SetFontAndSize (page, font, 20);
        HPDF_Page_ShowText (page, samp_text);
        HPDF_Page_MoveTextPos (page, 0, -20);

        i++;
    }

    HPDF_Page_EndText (page);

    HPDF_SaveToFile (pdf, fname);

    /* clean up */
    HPDF_Free (pdf);

    return 0;
}
The problem is that now, i get linking errors... i'm a beginner and i don't understand very well what is happening and how to fix it... I have tried to use libharu dinamic and static library and the problems are the same... The translations of the error's are this:

1>ControladorDades.obj : error LNK2005: already defined "int * env" (?env@@3PAHA) in ControladorConsola.obj
1>ControladorDades.obj : error LNK2005: already defined "void __cdecl error_handler(unsigned long,unsigned long,void *)" (?error_handler@@YAXKKPAX@Z) in ControladorConsola.obj
1>ControladorDomini.obj : error LNK2005: already defined "int * env" (?env@@3PAHA) in ControladorConsola.obj
1>ControladorDomini.obj : error LNK2005: already defined "void __cdecl error_handler(unsigned long,unsigned long,void *)" (?error_handler@@YAXKKPAX@Z) in ControladorConsola.obj
1>PDF.obj : error LNK2005: already defined "int * env" (?env@@3PAHA) in ControladorConsola.obj
1>PDF.obj : error LNK2005: already defined "void __cdecl error_handler(unsigned long,unsigned long,void *)" (?error_handler@@YAXKKPAX@Z) in ControladorConsola.obj
1>D:\VS PROJECT\nucleo\Release\nucleo.exe : fatal error LNK1169: founded one or more symbol defined simultaneously


Muchas gracias por la ayuda!!!!