Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 64 из 116<  1 ... 61  62  63  64  65  66  67 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Классы между DLL передавать нельзя, так как у DLL собственная куча,
и указатели указывают на адреса в своих кучах.

Есть, конечно, обходные маневры, но они сложные и геморройные.

_________________
Linux - must die.
Долгих лет тебе, Билли !



Партнер
 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator Да в Dll я передаю 3 строки их наверное лучше сделать Pchar , а вот в нутри сделано многое с помошью TStringList....
Добавлено спустя 4 минуты, 46 секунд
Вобщем сделал в один поток. Глюков не наблюдается.... Пока работает пусть работает.

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
defecator да ну? А СОМ как по твоему работает? Классы передавать можно, даже нужно (stdcall еще никто не отменял).

_________________
Ку ку


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Дельфийский класс и объект COM - это _ОЧЕНЬ_ разные вещи, хотя они и похожи.

Как ты думаешь, почему нельзя использовать классы Delphi из Dll, созданной в Delphi, в программе на Си ?

А вот COM-объекты - независимо от того, на каком языке он был создан :-)

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
defecator
Цитата:
Как ты думаешь, почему нельзя использовать классы Delphi из Dll, созданной в Delphi, в программе на Си ?
А вот и можно (но все методы должны быть stdcall) ;) Но, передавать готовый экземпляр класса нужно естественно через интерфейс, а все интерфейсы унаследованы в Делфи от IUnknown, так что тут тоже элемент СОМа есть, фабрики классов только нехватает.

_________________
Ку ку


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Ну так я же и говорю
Цитата:
Есть, конечно, обходные маневры, но они сложные и геморройные.

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
defecator а как можно без маневров, если класс в понятии Делфи и С++ - отличаются :)

_________________
Ку ку


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Про С++ я не говорю, но есть возможность использовать классы напрямую,
если прога и DLL написана на Delphi одной версии.

Т.е. создать класс в DLL, и передать его наружу, чтобы использовать в своей проге.

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 04.04.2005
Откуда: Екатеринбург
Daemon писал(а):
Выход есть - написать длл, которая экспортирует нужные ф-ции из этой либы, сделать вполне реально, дерзай.


А эту dll нодо на делфи писать или на с++ ?

А можно ли писать сразу в делфи используя описания функций из файла lglcd.pdf
Там даже картинка есть интересная:
#77
может можно использовать api.dll или exe ?


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator & Daemon Все пишется на Delphi. Модульность нужна для более легкого и простого обновления програмы. Поэтому думаю сложности с классами не будет. И проблему по поводу памяти пока решил, сделав один дополнительнй поток, а не 2 как планировал в начале. Спасибо за помощь и советы. :bow: :bow: :bow:

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
W[E]RTEX длл писать на С++ естественно, либа же С++шная.
Вызывать напрямую ф-ции из длл - можно, либа и дополнительные классы - по сути обертка над функциями импортируемыми из длл.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Доброго времени суток, извиняюсь за ламеровский вопрос, но беглое перелистывание учебников нифига не дало, а времени особо нету. Можно ли из процедуры вызвать другую процедуру? + если эта другая процедура находится в другом модуле??
а то получаю "Undeclared identifier".. Помогите пожалст... Просьба за ламерство не пинать - исправлюсь :)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
cj_remix пнуть таки надо, сторонний модуль подключать надо, через uses имя_модуля

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 04.04.2005
Откуда: Екатеринбург
Daemon спасиба за разъяснения, теперь я спокоен т.к. cpp для меня это неизвесность... а кого то просить наверно безполезно.


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
cj_remix unit.pas или unit.tpu Если первое то делаешь в моджуле uses
MyUnit in 'MyUnit.pas' {Form1}, если второе то просто uses MyUnit

Вопрос Такой по TDBGrid как в солонку в свойство PickList запхнуть данные из таблици спарвочника?Чтоб получился выподающий список, наподобии как в Access.

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Daemon
Я конечно ламер ещё, но не настолько!! Подключаю всё - не пашет... Тема такая вобщем.... Из "головы" вызывается процедура, которая расположена в модуле unit2.pas из этой процедуры этого модуля вызывается другая процедура, которая находится в модуле unit3.pas. В "голове" подключен unit2,unit3, в unit3 подключен unit3.... должно ведь работать!


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
cj_remix
Цитата:
В "голове" подключен unit2,unit3, в unit3 подключен unit3.... должно ведь работать!
Че-че? Код давай :)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
cj_remix
Цитата:
В "голове" подключен unit2,unit3, в unit3 подключен unit3.... должно ведь работать!

отключи в голове unit3 если не используешь никаие функции из нее.

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
_DiseL_ писал(а):
отключи в голове unit3 если не используешь никаие функции из нее.

Не помогло....
Daemon писал(а):
Че-че? Код давай

На....
Голова:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OpenTXT, DataWork;{Sort;}

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Button2: TButton;
    Button3: TButton;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
openf('C:\1.txt');
end;

end.


Unit OpenTXT:
Код:
unit OpenTXT;

interface
uses DataWork;
implementation

procedure openf(var name:string);
var a:TextFile;
begin
assign(a,name);
reset(a);
DataW(a);
close(a);
end;


end.

В юните DataWork аагромная процедура, её копировать не имеет смысла....
Получаю Undeclared identifier на строке
Код:
DataW(a);

в юните OpenTXT
подправил


Последний раз редактировалось cj_remix 24.04.2006 20:58, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
cj_remix ну скопировал блин :) Где DataW находится? Ее прототип объявил в секции Interface?

_________________
Ку ку


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 64 из 116<  1 ... 61  62  63  64  65  66  67 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan