Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Экспорт класса в CPPBuilder


Автор: ctulhu 7.2.2007, 21:35
Есть класс написанный в Дельфи. ы

Как описать его в Dll таким образом, чтобы его можно было использовать в C++ Builder, как из обчного Юнита.

Автор: aktuba 7.2.2007, 21:39
А можно подробнее что к чему? Например, что передается в dll и из dll?

Автор: Romikgy 7.2.2007, 22:45
имхо для этого надо юзать bpl

Автор: ctulhu 8.2.2007, 06:00
Класс имеет следующее описание, сам по себе работает с 3DS моделями но зависит от многих дельфёвских юнитов.
Все данные хранит внутри себя.
Код


Uses Windows, Messages, Classes, Graphics, Controls, Forms, Geometry, GraphicEx,
  OpenGL, UtilsGL, StdCtrls, ShellApi, File3DS, Utils3DS, Dialogs,
  Types3DS, Const3DS, SysUtils, Math;

Type
  TModel3DS = Class(TObject)
  //-------------------------------------
    Private
      FReader: TFile3DS;

      // Опции сетки
      FLists: TList;
      FMainList: Cardinal;
      FCenter: TAffineVector;

      // Материалы
      FMaterials: TStringList;
   //-------------------------------------
      procedure Use3DSData(const Reader: TFile3DS);
      procedure ConvertMaterials(const Materials3DS: TMaterialList);
      procedure SetupTextures(ImagePath: String);
      procedure ClearLists;
      procedure CheckOpenGLError;
      function ConvertMeshData(const Version: TReleaseLevel; const Mesh3DS: PMesh3DS;
        ShowWarnings: Boolean): PMeshObject;
      function LoadPictureFromFile(Picture: TPicture; ImagePath,
        FileName: String): Boolean;
      function CreateTextureObject(DC: HDC; Bitmap: TBitmap;
        MinFilter, MagFilter: Cardinal): Cardinal;
   //-------------------------------------
    Public
      Constructor Create();
      Destructor Destroy(); Override;
      Procedure LoadModel(FilePath: String);
      Procedure DrawModel();
  end;

Автор: Bose 8.2.2007, 12:49
ctulhu, если из всего класса из ДЛЛ тебе вызывать только эти два метода:
Код

  Procedure LoadModel(FilePath: String);
  Procedure DrawModel();


то вполне достаточно будет сделать обычную DLLку, которая будет экспортировать эти методы в виде функций(т.е. в которой будут экспортироваться 2 функции, вызывающие соответствующие методы).

Автор: ctulhu 8.2.2007, 21:37
Bose, а сам класс также описывать в ДЛЛьке, со всеми подключаемыми юнитами?

Автор: Bose 8.2.2007, 21:56
Цитата(ctulhu @  8.2.2007,  21:37 Найти цитируемый пост)
Bose, а сам класс также описывать в ДЛЛьке, со всеми подключаемыми юнитами?

да.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)