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

  • Автор темы tango2002
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

tango2002

Гость
#1
Возникла необходимость переписать проги с третьего билдера на шестой, и появились проблемы с экспортируемыми классами 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:

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

tango2002

Гость
#3
еще одна проблемка вылезла :)((
при применении изменений в базе данных выдает экцепшн... а именно в 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;
}
откомпилировал, дык тоже экцепшн выдает :(((
 
Статус
Закрыто для дальнейших ответов.