проблема перевода Dll с Bcb3 на Bcb6

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем tango2002, 10 авг 2009.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. tango2002

    tango2002 Гость

    Возникла необходимость переписать проги с третьего билдера на шестой, и появились проблемы с экспортируемыми классами DLL
    Вызывающий модуль
    Код (Text):
    #include <vcl.h>
    #pragma hdrstop

    #define BUILD_APP

    #include "CallingForm.h"
    #include "unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    FormDll=new TFormDll(0);
    FormDll->ShowModal();
    delete FormDll;
    }
    сама библиотека(описание экспортируемого класса)
    Код (Text):
    //---------------------------------------------------------------------------

    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>

    //---------------------------------------------------------------------------
    #if defined(BUILD_DLL)
    # define DLL_EXP __declspec(dllexport)
    #else
    # if defined(BUILD_APP)
    # define DLL_EXP __declspec(dllimport)
    # else
    # define DLL_EXP
    # endif
    #endif
    //---------------------------------------------------------------------------

    class TFormDll : public TForm
    {
    __published:  // IDE-managed Components
    TButton *Button1;
    private:  // User declarations
    public:  // User declarations
    __fastcall TFormDll(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern DLL_EXP TFormDll *FormDll;
    //---------------------------------------------------------------------------
    #endif
    в BCB3 это все проходило на ура, а вот в BCB6... сама библиотека компилится нормально, а вот в вызывающем модуле выдается "Unresolved external TFormDll" :blink:

    может кто подскажет что ему там не нравится
     
  2. tango2002

    tango2002 Гость

    все... сам разобрался :rolleyes:
     
  3. tango2002

    tango2002 Гость

    еще одна проблемка вылезла :)((
    при применении изменений в базе данных выдает экцепшн... а именно в Database->ApplyUpdates.....
    открыл примерчик из комплекта BCB6 "Examples\DBTasks\MastApp" там вот такая функция есть:
    Код (Text):
    bool TMastData::DataSetApplyUpdates(TDBDataSet *DataSet, bool Apply)
    {
    bool retval = true;
    if ((DataSet->State==dsEdit || DataSet->State==dsInsert ||DataSet->State==dsSetKey)
    || DataSet->UpdatesPending)
    {
    if (Apply)
    {
    Database->ApplyUpdates((const TDBDataSet **)DataSet, 0);
    DataSet->CancelUpdates();
    }
    else
    {
    if (Confirm("Unsaved changes, exit anyway?"))
    DataSet->CancelUpdates();
    else
    retval = false;
    }
    }
    return retval;
    }
    откомпилировал, дык тоже экцепшн выдает :(((
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей