На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> gmp-lib and Builder c++ , срочно нужно
    доброго времени суток. срочно нужно прикрутить gmp к Builder-у, помогите пожалуйста.
    взял с сайта: http://cs.nyu.edu/exact/core/gmp/
    dynamic GMP library and header file for MinGW: gmp-dynamic-mingw-4.1.tar.gz
    в архиве присутствуют: libgmp-3.dll, gmp.h, .info файлы
    коммандой implib.exe -a -f libgmp-3.lib libgmp-3.dll создал libgmp-3.lib
    кинул libgmp-3.lib, libgmp-3.dll, gmp.h в папку проекта
    добавил libgmp-3.lib в проект через Project->Add to project
    в коде добавил :
    ExpandedWrap disabled
      #include "gmp.h"
      #pragma link "libgmp-3.lib"


    на попытку скомпилировать проект выдаёт:
    ExpandedWrap disabled
      [BCC32 Error] gmp.h(493): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(522): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(545): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(556): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(812): E2303 Type name expected
      [BCC32 Error] gmp.h(817): E2303 Type name expected
      [BCC32 Error] gmp.h(885): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(890): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(1095): E2303 Type name expected
      [BCC32 Error] gmp.h(1114): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Error] gmp.h(1259): E2303 Type name expected
      [BCC32 Error] gmp.h(1279): E2147 'FILE' cannot start a parameter declaration
      [BCC32 Warning] gmp.h(1565): W8041 Negating unsigned value
      [BCC32 Error] main.cpp(26): E2268 Call to undefined function 'gmp_randinit_mt'

    подскажите пожалуйста, что я сделал неправильно или как подключать по пунктам.
      Ну, не правильно тут только то, что заголовочные файлы для MinGW, а не для билдера.
      Попробуй
      ExpandedWrap disabled
        #include <stdio.h>
        #include "gmp.h"

      Ещё неплохобы натравить на длл-ку impdef и посмотреть на декорацию имён в получившемся деф-файле
        Цитата Adil @
        Ну, не правильно тут только то, что заголовочные файлы для MinGW, а не для билдера.
        Попробуй
        ExpandedWrap disabled
          #include <stdio.h>
          #include "gmp.h"

        Ещё неплохобы натравить на длл-ку impdef и посмотреть на декорацию имён в получившемся деф-файле

        после того как добавил #include <stdio.h>:
        ExpandedWrap disabled
          [ILINK32 Error] Fatal: Unable to open file '  „† ��†B.OBJ'

        не смог прикрепить сюда def файл, приведу его частично:
        ExpandedWrap disabled
          LIBRARY     LIBGMP-3.DLL
           
          EXPORTS
              __gmp_0                        @192 ; __gmp_0
              __gmp_allocate_func            @2   ; __gmp_allocate_func
              __gmp_asprintf                 @3   ; __gmp_asprintf
              __gmp_asprintf_final           @4   ; __gmp_asprintf_final
              __gmp_asprintf_funs            @5   ; __gmp_asprintf_funs
              __gmp_asprintf_memory          @6   ; __gmp_asprintf_memory
              __gmp_asprintf_reps            @7   ; __gmp_asprintf_reps
              __gmp_assert_fail              @8   ; __gmp_assert_fail
              __gmp_assert_header            @9   ; __gmp_assert_header
              __gmp_bits_per_limb            @10  ; __gmp_bits_per_limb
              __gmp_default_allocate         @11  ; __gmp_default_allocate
              __gmp_default_fp_limb_precision @12  ; __gmp_default_fp_limb_precision
              __gmp_default_free             @13  ; __gmp_default_free
              __gmp_default_reallocate       @14  ; __gmp_default_reallocate
              __gmp_divide_by_zero           @15  ; __gmp_divide_by_zero
              __gmp_doprnt                   @16  ; __gmp_doprnt
              __gmp_doprnt_integer           @17  ; __gmp_doprnt_integer
              __gmp_doprnt_mpf               @18  ; __gmp_doprnt_mpf
              __gmp_doscan                   @19  ; __gmp_doscan
              __gmp_errno                    @20  ; __gmp_errno
              __gmp_exception                @21  ; __gmp_exception
              __gmp_extract_double           @22  ; __gmp_extract_double
              __gmp_fib_table                @23  ; __gmp_fib_table
              __gmp_fprintf                  @24  ; __gmp_fprintf
              __gmp_fprintf_funs             @25  ; __gmp_fprintf_funs
              __gmp_free_func                @26  ; __gmp_free_func
              __gmp_fscanf                   @27  ; __gmp_fscanf
              __gmp_fscanf_funs              @28  ; __gmp_fscanf_funs
              __gmp_junk                     @29  ; __gmp_junk
              __gmp_modlimb_invert_table     @30  ; __gmp_modlimb_invert_table
          .......
              __gmpz_tdiv_ui                 @375 ; __gmpz_tdiv_ui
              __gmpz_tstbit                  @376 ; __gmpz_tstbit
              __gmpz_ui_kronecker            @377 ; __gmpz_ui_kronecker
              __gmpz_ui_pow_ui               @378 ; __gmpz_ui_pow_ui
              __gmpz_ui_sub                  @379 ; __gmpz_ui_sub
              __gmpz_urandomb                @380 ; __gmpz_urandomb
              __gmpz_urandomm                @381 ; __gmpz_urandomm
              __gmpz_xor                     @382 ; __gmpz_xor
        Сообщение отредактировано: amiserio -
          Цитата amiserio @
          [ILINK32 Error] Fatal: Unable to open file '  „† ��†B.OBJ'
          Тебе имя файла несколько странноватым не кажется? Русское что ль?
          И эта ошибка остаётся, даже если закомментировть подключение gmp и прагму link?


          Цитата amiserio @
          не смог прикрепить сюда def файл, приведу его частично:
          Вроде всё в порядке.
          Если будут проблемы, можно попробовать
          ExpandedWrap disabled
            extern "C"
              #include "gmp.h"
            }
            Цитата Adil @
            Цитата amiserio @
            [ILINK32 Error] Fatal: Unable to open file '  „† ��†B.OBJ'
            Тебе имя файла несколько странноватым не кажется? Русское что ль?
            И эта ошибка остаётся, даже если закомментировть подключение gmp и прагму link?


            Цитата amiserio @
            не смог прикрепить сюда def файл, приведу его частично:
            Вроде всё в порядке.
            Если будут проблемы, можно попробовать
            ExpandedWrap disabled
              extern "C"
                #include "gmp.h"
              }

            проблема была в русском названии папки, где располагался проект, сейчас скопировал в корень c:\ и попробовал скомпилировать, получил вот что:
            ExpandedWrap disabled
              [ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
              [ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
              [ILINK32 Error] Error: Unresolved external '___gmpz_init' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_set_str' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_get_str' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmp_randinit_mt' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external 'operator >>(std::basic_istream<char, std::char_traits<char> >&, __mpz_struct *)' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_divexact_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_set' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_cdiv_q_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_fdiv_r_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_sub_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_urandomm' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_mod' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_powm' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_cmp_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_powm_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external 'operator <<(std::basic_ostream<char, std::char_traits<char> >&, const __mpz_struct *)' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_set_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_add_ui' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_cmp' referenced from C:\TEST\RELEASE\MAIN.OBJ
              [ILINK32 Error] Error: Unresolved external '___gmpz_clear' referenced from C:\TEST\RELEASE\MAIN.OBJ

            при добавлении extern "C":
            ExpandedWrap disabled
              [BCC32 Warning] gmp.h(1565): W8041 Negating unsigned value
              [BCC32 Error] gmp.h(2058): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2059): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2059): E2337 Only one of a set of overloaded functions can be "C"
              [BCC32 Error] gmp.h(2060): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2060): E2337 Only one of a set of overloaded functions can be "C"
              [BCC32 Error] gmp.h(2061): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2062): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2062): E2337 Only one of a set of overloaded functions can be "C"
              [BCC32 Error] gmp.h(2063): E2132 Templates and overloaded operators cannot have C linkage
              [BCC32 Error] gmp.h(2063): E2337 Only one of a set of overloaded functions can be "C"

            видимо там не с а с++, если пишу extern "C++", то выводит Unresolved external ... которые я привёл выше.
            помогите пожалуйста, как быть :'(
            Сообщение отредактировано: amiserio -
              extern "C" - это не объявление языка, а просто указание линковщику о том, что имена фукций в стили Си.
              Тут походу одним объявлением не отделаешься, потому что в gmp.h еще и stl-хедеры включены.
              Попробуй подправить в gmp.h для начала объявление одной фукции, той же __gmpz_init. добавив extern "C" прямо в начало самой строки с её прототипом, типа
              ExpandedWrap disabled
                extern "C" void gmpz_init();
              Ушёл unresolved для этой функции?
              Цитата amiserio @
              если пишу extern "C++"
              Улыбнуло.

              Добавлено
              Постарайся забыть, всё, что было сказано выше. Просто сделай lib-файл с ключами -a -c у implib
                Цитата Adil @
                extern "C" - это не объявление языка, а просто указание линковщику о том, что имена фукций в стили Си.
                Тут походу одним объявлением не отделаешься, потому что в gmp.h еще и stl-хедеры включены.
                Попробуй подправить в gmp.h для начала объявление одной фукции, той же __gmpz_init. добавив extern "C" прямо в начало самой строки с её прототипом, типа
                ExpandedWrap disabled
                  extern "C" void gmpz_init();
                Ушёл unresolved для этой функции?
                Цитата amiserio @
                если пишу extern "C++"
                Улыбнуло.

                Добавлено
                Постарайся забыть, всё, что было сказано выше. Просто сделай lib-файл с ключами -a -c у implib

                сделал lib как Вы сказали для dll скомпиленном в mingw и в VC, пробовал оба варианта, всё тоже самое :(
                ExpandedWrap disabled
                  [ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
                  [ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
                  [ILINK32 Error] Error: Unresolved external '___gmpz_init' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_set_str' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_get_str' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmp_randinit_mt' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external 'operator >>(std::basic_istream<char, std::char_traits<char> >&, __mpz_struct *)' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_divexact_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_set' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_cdiv_q_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_fdiv_r_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_sub_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_urandomm' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_mod' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_powm' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_cmp_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_powm_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external 'operator <<(std::basic_ostream<char, std::char_traits<char> >&, const __mpz_struct *)' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_set_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_add_ui' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_cmp' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ
                  [ILINK32 Error] Error: Unresolved external '___gmpz_clear' referenced from C:\DOWNLOADS\GMP DLL\TEST\RELEASE\MAIN.OBJ

                про экстерны знал впринципе) раз улыбнул то хорошо)

                пробовал добавлять перед обьявлением функции gmpz_init extern "C" - тоже не помогает ;;
                  Только сейчас обратил внимание:
                  Цитата amiserio @
                  [ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl [ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
                  Это к gmp никакого отношения не имеет - тут что-то с настройками проекта не так.
                  И почему-то у тебя линкер в ошибках пишет все имена функций с тремя '_', а должен только с двумя, т.к. в gmp.h
                  уже есть extern "C":
                  Цитата gmp.h
                  ExpandedWrap disabled
                    #if defined (__cplusplus)
                    extern "C" {
                    #endif
                  Такое ощущение, что у тебя сбиты настройки проекта. Попробуй просто создать новый - обычный VCL-ный - проект, добавить туда gmp.h, link на gmp lib, созданный с ключами -a -c и один только вызов mpz_init:
                  ExpandedWrap disabled
                    #include <vcl.h>
                    #pragma hdrstop
                     
                    #include "Unit1.h"
                    #include "gmp.h"
                    #pragma link "libgmp-3.lib"
                    //---------------------------------------------------------------------------
                    #pragma package(smart_init)
                    #pragma resource "*.dfm"
                    TForm1 *Form1;
                    //---------------------------------------------------------------------------
                     
                    __fastcall TForm1::TForm1(TComponent* Owner)
                        : TForm(Owner)
                    {
                        mpz_ptr p;
                        mpz_init(p);
                    }
                  - слинкуется? У меня в 6-ке это слинковалось.
                    Цитата Adil @
                    Только сейчас обратил внимание:
                    Цитата amiserio @
                    [ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl [ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MT.LIB|crtlvcl
                    Это к gmp никакого отношения не имеет - тут что-то с настройками проекта не так.
                    И почему-то у тебя линкер в ошибках пишет все имена функций с тремя '_', а должен только с двумя, т.к. в gmp.h
                    уже есть extern "C":
                    Цитата gmp.h
                    ExpandedWrap disabled
                      #if defined (__cplusplus)
                      extern "C" {
                      #endif
                    Такое ощущение, что у тебя сбиты настройки проекта. Попробуй просто создать новый - обычный VCL-ный - проект, добавить туда gmp.h, link на gmp lib, созданный с ключами -a -c и один только вызов mpz_init:
                    ExpandedWrap disabled
                      #include <vcl.h>
                      #pragma hdrstop
                       
                      #include "Unit1.h"
                      #include "gmp.h"
                      #pragma link "libgmp-3.lib"
                      //---------------------------------------------------------------------------
                      #pragma package(smart_init)
                      #pragma resource "*.dfm"
                      TForm1 *Form1;
                      //---------------------------------------------------------------------------
                       
                      __fastcall TForm1::TForm1(TComponent* Owner)
                          : TForm(Owner)
                      {
                          mpz_ptr p;
                          mpz_init(p);
                      }
                    - слинкуется? У меня в 6-ке это слинковалось.

                    у меня 2009-й билдер, возможно сбиты, но я менял только те параметры которые позволяют после сборки exe запускать его на других компьютерах без установленного билдера.
                    создал пустой проект, сделал всё как Вы привели, получаю:
                    [ILINK32 Error] Error: Unresolved external '___gmpz_init' referenced from C:\GMP TEST\DEBUG\TEST.OBJ
                    :no-sad:

                    попробовал на 6-м, получил туже басню:
                    ExpandedWrap disabled
                      [C++ Warning] gmp.h(1638): W8026 Functions with exception specifications are not expanded inline
                      ... -||- ...
                      [Linker Error] Unresolved external '___gmpz_init' referenced from D:\GMP TESTING\BCB 6 TEST\UNIT1.OBJ

                    скиньте пожалуйста проект вместе с длл, либ и хидером.

                    п.с. может дело в том что я пользую implib в builder-e 2009-м? или это без разницы?
                    Сообщение отредактировано: amiserio -
                      ok
                      Прикреплённый файлПрикреплённый файлGMPBCB.tar.bz2 (111.46 Кбайт, скачиваний: 196)
                        Цитата Adil @
                        ok

                        благодарю.
                        подставив свою dll получил что линкуется, но во время запуска программы возникает ошибка вида: Access violation at adress XXXXXXX in module 'libgmp-3.dll'. Write of address 00000000. уже сменил несколько длл, результат один и тот же:(
                        пробовал длл от VS личной сборки - получил "Ошибка при инициализации приложения (0xc0150002) ...". Всё я это проделывал в BCB 2009.
                        Причём использовал Implib от версий билдера 6 и 2009 по очерёдно. в случаях когда использовал implib 2009-го выскакивало [ILINK32 Error] Error: Unresolved external '___gmpz_init' referenced from C:\LP CRYPTO\RELEASE\MAIN.OBJ, после использования implib от 6-го линкер уже не ругался, программа запускалась, но при нажатии кнопки, в обработчик OnClick которой было вставлено 2 строчки: mpz_ptr mg; mpz_init(mg);, вылазиет Access violation at adress.

                        посмотрите пожалуйста проект, хидер и длл брал отсюда, lib файл создал с помощью implib 6-го билдера. проект для bcb 6:
                        Сообщение отредактировано: amiserio -

                        Прикреплённый файлПрикреплённый файлgmp_proj.tar.gz (126.25 Кбайт, скачиваний: 178)
                          Цитата amiserio @
                          mpz_ptr mg; mpz_init(mg);

                          Ну так естественно. Я этот код только для проверки слинкуется/не слинкуется привёл, т.к. лень было разбираться с типом передаваемого указателя.
                          А так надо инициализировать указателем на структуру:
                          ExpandedWrap disabled
                                    __mpz_struct p;
                                     mpz_init(&p);
                            Цитата Adil @
                            Цитата amiserio @
                            mpz_ptr mg; mpz_init(mg);

                            Ну так естественно. Я этот код только для проверки слинкуется/не слинкуется привёл, т.к. лень было разбираться с типом передаваемого указателя.
                            А так надо инициализировать указателем на структуру:
                            ExpandedWrap disabled
                                      __mpz_struct p;
                                       mpz_init(&p);

                            понял:) благодарствую. всё работает.
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,1202 ]   [ 16 queries used ]   [ Generated: 4.06.23, 00:24 GMT ]