Цитата(Massi @ Dec 21 2007, 11:37)

...перешел на 2006...взял ДБХ от него...программер в Дельфях пытается установить связь с новой длл-кой...и ничего...
кто писал что то подобное...и где копатся...
Я использовал не много подправленный результат трансляции заголовочного файла Dbx32.h
Нажмите для просмотра прикрепленного файлаСвязь с pcb через вызов функции TOpenDesign DBX выглядит у меня примерно так (практически не меняясь со времен P-CAD 2002):
Код
unit Unit1;
...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls;
type
TForm1 = class(TForm)
...
Edit1: TEdit;
StatusBar1: TStatusBar;
dgSaveDrlFile: TSaveDialog;
...
procedure FormCreate(Sender: TObject);
...
private
function ConnectToPcb: boolean;
public
procedure DisplayEdStr(Ed: TEdit; EdStr: string);
end;
var
Form1: TForm1;
implementation
uses DBX32, // прикреплен к этому посту
FileCtrl;
{$R *.dfm}
var
dbx_Res: LongInt; // Результат вызова DBX функции
dbx_Context: DbxContext;
dbx_Design: TDesign;
...
function TForm1.ConnectToPcb: boolean;
begin
Result:=False;
StatusBar1.SimpleText:=' Подключение к PCB проекту ...';
dbx_Res:=TOpenDesign(DBX_LANGUAGE, DBX_VERSION, 'pcb', dbx_Context);
if dbx_Res=DBX_OK then begin
dbx_Res:=TGetDesignInfo(dbx_Context, dbx_Design);
if dbx_Res=DBX_OK then begin
PcbFileName:=dbx_Design.designName;
if PcbFileName='' then
StatusBar1.SimpleText:=' Сохраните проект.'
else begin
// Название PCB файла
DisplayEdStr(Edit1, pcbFileName);
dgSaveDrlFile.FileName:=ChangeFileExt(PcbFileName, '.drl');
DisplayEdStr(Edit2, dgSaveDrlFile.FileName);
StatusBar1.SimpleText:='';
Result:=True;
end;
end;
end else StatusBar1.SimpleText:=' Ошибка подключения к проекту.';
end;
Цитата
ошибка 32141 dbx_item_not_found
Эта ошибка может появлятьсся во многих местах. Надо обязательно
после вызова каждой DBX функции, проверять возвращаемое ей значение.
Т.е. предусматривать что-то вроде такого:
Код
if dbx_Res=DBX_OK then
begin // ОК
...
end else // Error - анализ и последующая обработка
...
end;