1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

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

Тема в разделе "С и С++", создана пользователем tango2002, 10 авг 2009.

Статус темы:
Закрыта.
  1. tango2002

    tango2002 Гость

    Репутация:
    0
    Возникла необходимость переписать проги с третьего билдера на шестой, и появились проблемы с экспортируемыми классами DLL
    Вызывающий модуль
    Код:
    #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;
    }
    сама библиотека(описание экспортируемого класса)
    Код:
    //---------------------------------------------------------------------------
    
    #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 Гость

    Репутация:
    0
    все... сам разобрался :rolleyes:
     
  3. tango2002

    tango2002 Гость

    Репутация:
    0
    еще одна проблемка вылезла :)((
    при применении изменений в базе данных выдает экцепшн... а именно в Database->ApplyUpdates.....
    открыл примерчик из комплекта BCB6 "Examples\DBTasks\MastApp" там вот такая функция есть:
    Код:
    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;
    }
    откомпилировал, дык тоже экцепшн выдает :(((
     
Загрузка...
Статус темы:
Закрыта.

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