Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Вниз

Че с дельфи6 происходит?   Найти похожие ветки 

 
Psibug   (2003-09-13 19:13) [0]

Ака что не так в коде(см ниже ):
Не может найти в месте, помеченом кооментариями на английском, один из типов данных - TEditorInterface. Стопудово всё объявлено и модули находит все.
Не компилит Editorwnd.pas b dc` nen/

library EditorDLL;
uses
SysUtils,Classes, editorwnd in "editorwnd.pas" {Form1},
editorintf in "editorintf.pas",
coreintf in "..\coreintf.pas";
{$R *.res}
begin
end.

Использует это:

unit editorintf;
interface
uses coreintf;
implementation
Type
TEditorInterface=packed record
ShowEditorControls:procedure;stdcall;
HideEditorControls:procedure;stdcall;
EatEditorMessages:procedure;stdcall;
end;
TEdiorAttachProc=function(const ci:TCoreInterface;var egui:TEditorInterface):int32;
end.

И

unit coreintf;
interface
type
HINST=LONGWORD;
HWND=cardinal;
int32=integer;
bool=longbool;
float=single;
uint32=cardinal;
int16=word;
int8=byte;
hwmem=pointer;
pfloat=^float;
pint32=^int32;

ObjectUniqueKey=packed record
case int32 of
0:(prefix,suffix:int64;);
1:(ints:array[0..3] of int32;);
2:(words:array[0..7] of int16;);
3:(bytes:array[0..$F] of int8;);
end;
TGLOBALEVENT=procedure;stdcall;
TGLOBALITERATIONPROC=function(const activemode:bool):bool;stdcall;
IStorageReader=interface
["{6FAC04A4-EC92-47E1-B76A-73BCA5170B0E}"]
function ReadInt:int32;
function ReadFloat:float;
function ReadBool:bool;
function ReadString:string;
function ReadMemory(var m:hwmem;var mlen:int32):int32;
//procedure SeekToBegin;
function Position:int32;
function Size:int32;
end;
IStorageWriter=interface
["{0B0C9581-19BE-4122-90C9-3C37FC1625CB}"]
procedure WriteInt(const value:int32);
procedure WriteFloat(const value:float);
procedure WriteBool(const value:bool);
procedure WriteString(const value:string);
function WriteMemory(const m:hwmem;const memlen:int32):int32;
function Position:int32;
function Size:int32;
end;
IStorable=interface
["{C2CD4195-4DE0-43E8-831F-0F78544F065A}"]
procedure WriteToStorage(const sw:IStorageWriter);
procedure ReadFromStorage(const sr:IStorageReader);
procedure ReadOUK(var key:ObjectUniqueKey);
function IsOUKThis(const key:ObjectUniqueKey):bool;
end;
TCreateFileAFSStorage=function(const afspath:string):IStorageWriter;stdcall;
TOpenToReadFileAFSStorage=function(const afspath:string):IStorageReader;stdcall;
TOpenToWriteFileAFSStorage=function(const afspath:string):IStorageWriter;stdcall;
{$IFDEF MSWINDOWS}
const PATHDELIMETER:char="\";
{$ELSE}
const PATHDELIMETER:char="/";
{$ENDIF}
const AFS_LOCALFILEGRAPHIC:string="afsfileg://";
const AFS_LOCALFILEBYTES:string="afsfileb://";
const AFS_LOCALFONT1:string="afsfont1://";
type
{Это объявление он не может найти в editorwnd.pas, см далее}
TCoreInterface=packed record
GetPlatformResource:function: HWND;stdcall;
WaitInterval:procedure(const i: int32);stdcall;
ShowError:procedure(const errdesc: string);stdcall;
IsAppActive:function:bool;stdcall;
GetActivationProc:function:TGLOBALEVENT;stdcall;
SetActivationProc:procedure(const p: TGLOBALEVENT);stdcall;
GetDeactivationProc:function:TGLOBALEVENT;stdcall;
SetDeactivationProc:procedure(const p: TGLOBALEVENT);stdcall;
StartMainLoop:function(sleepperiod: int32):int32;stdcall;
StopMainLoop:procedure;stdcall;
IsInMainLoop:function:bool;stdcall;
GetIterationProc:function:TGLOBALITERATIONPROC;stdcall;
SetIterationProc:procedure(const p: TGLOBALITERATIONPROC); stdcall;
IsSysKeyDown:function(const vk: int32): bool; stdcall;
GetExeInstance:function:HINST;stdcall;
ScreenWidth:function:int32;stdcall;
ScreenHeight:function:int32;stdcall;

CreateFileAFSStorage:TCreateFileAFSStorage;
OpenToReadFileAFSStorage:TOpenToReadFileAFSStorage;
OpenToWriteFileAFSStorage:TOpenToWriteFileAFSStorage;
OpenToAppendFileAFSStorage:TOpenToWriteFileAFSStorage;
AFSPathToHWPath:function(const afspath:string):string;
CreateObjectUniqueKey:procedure(var k:ObjectUniqueKey);stdcall;
CompareObjectUniqueKeys:function(const k,k2:ObjectUniqueKey):bool;stdcall;
end;
implementation
end.

И наконец, место ошибки, editor wnd.pas:

unit editorwnd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,coreintf,editorintf;
type
TForm1 = class(TForm)
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
public
end;
var
Form1: TForm1;
function EditorAttachProc(const ci: TCoreInterface;
var egui: TEditorInterface): int32;stdcall;
procedure ShowControls; stdcall;
procedure HideControls; stdcall;
procedure EatEditorMessages; stdcall;
implementation
{$R *.dfm}
var
globci:TCoreInterface;
ei:TEditorInterface;
{ERROR PLACE START}
function EditorAttachProc(const ci: TCoreInterface;
var egui: TEditorInterface): int32;stdcall;
{ERROR PLACE END}
begin
globci:=ci;
egui:=ei;
end;
procedure ShowControls;
begin
Form1.Show();
end;
procedure HideControls;
begin
Form1.Hide;
end;
procedure EatEditorMessages;
var m:msg;
begin
while PeekMessage(m,Form1.Handle,0,0,PM_REMOVE) do
begin
TranslateMessage(m);
DispatchMessage(m);
end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
canclose:=false;
Hide;
end;
procedure filleditorinterface;
begin
ei.
end;
initialization
Form1:=TForm1.Create(nil);
filleditorinterface;
finalization
Form1.Release;
end.


 
pasha_golub   (2003-09-13 20:02) [1]

IMHO, быть может проблема совместимости версий Delphi?


 
Psibug   (2003-09-13 20:37) [2]

Не, все модули написаны в дельфи6.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-82264
Xitrik
2003-09-13 20:14
2003.09.25
как в Delphi обозначить (+,-,*,/) клавиши дополнительной клавиату


3-82136
Брус
2003-09-01 15:33
2003.09.25
Как в FB выбрать с 5 по 10 запись?


1-82256
Alibaba
2003-09-12 11:38
2003.09.25
Анимация в Tray


14-82415
K .o.Z
2003-09-06 19:52
2003.09.25
Украина - Северная Ирландия


14-82451
Владимир Мунякин
2003-09-08 04:39
2003.09.25
О скоростном модеме разработанными Белорусами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский