На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> DirectX(DirectSound)
    Люди, помогите найти документацию по DirectX, в частности по DirectSound.
    Желательно на Русском(хотя и English пойдёт). Я хочу звук в игре делать через DirectSound, а информации не имею. В TMT Pascal 4.0 есть встроенный модуль DirectX, да
    вот TMT Pascal'а 4.0 не имею :'(. Помогите please.
      Лююди! Ну помогите please  :-[. Хоть исходники где-нить есть?
        На чем ты собрался под ПрямойХ писать?
        Насчет Док - набери в поисковике "directx tutorial"
        Сообщение отредактировано: vot -
          Я собрался на TMT Pascal'е 3.5 (незарегистрированном писать)
            Потом расскажи народу, что у тебя получилось, ок?
              Не поленился, поискал "программирование directx"  - очень много ссылок!
                Ок, спасибо! Теперь I have another problem  ::) Как мне переделать TPU модули BP на FPD
                модули TMT? Или как открыть DLL из TMT 3.5 незарегистрированного?

                И ещё- я хотел зарегистрироваться здесь, послал данные - и связь оборвалась!
                Теперь хочу перерегистрироваться, пишу данные - а мне ответ: такой e-mail уже исполь-
                зуется! Я пишу свой login в напоминателе паролей, а он пишет: Такого не наблюдается >:(. Как же мне быть, если я не хочу mail менять ???
                  > Как мне переделать TPU модули BP на FPD модули TMT?

                   Перекомпилировать.

                  > Или как открыть DLL из TMT 3.5 незарегистрированного?

                    Да так же, как и в БП7.
                    Пиши интерфейсный модуль.

                  > login

                    Сообщи мне приватным сообщением
                    твои ранее введенные логин, пароль и е-мэйл

                    Насчёт перекомпилировать TPU в FPD - я хотел это сделать с WinApi, но у меня не получилось компилировать функции, содержащие INLINE, и стоящие до Implementation.
                    Может надо в Interface оставить их заголовки, а сами функции сунуть в implementation?
                    Подскажите Please.

                    И ещё - как создать к тебе(vot) приватное сообщение???
                      Откуда инлайн в интерфейсе???
                      Сорри, гостям зпрещено отправлять приватные мессаги...
                      Напиши на rswag at sources.ru
                        Вот откуда(правда я тут чуть-чуть REM' ами побаловался ;D, а так это он и есть(WinApi):

                        ExpandedWrap disabled
                          {*******************************************************}
                          {                                                       }
                          {       Turbo Pascal Runtime Library                    }
                          {       DOS Protected-mode Interface Unit               }
                          {                                                       }
                          {       Copyright (c) 1991,92 Borland International     }
                          {                                                       }
                          {*******************************************************}
                           
                          unit WinAPI;
                           
                          {$S-}
                           
                          interface
                           
                          { Generic types }
                           
                          type
                            Bool     = WordBool;          { Windows compatible boolean }
                            THandle  = Word;              { Global memory handle }
                            TFarProc = Pointer;           { Procedure address }
                           
                          { Flags returned by GetWinFlags }
                           
                          const
                            wf_PMode      = $00000001;    { Running in protected mode }
                            wf_CPU286     = $00000002;    { System CPU is an 80286 }
                            wf_CPU386     = $00000004;    { System CPU is an 80386 }
                            wf_CPU486     = $00000008;    { System CPU is an 80486 }
                            wf_Standard   = $00000010;    { Running in standard mode }
                            wf_Enhanced   = $00000020;    { Running in enhanced mode }
                            wf_CPU086     = $00000040;    { System CPU is an 8086 }
                            wf_CPU186     = $00000080;    { System CPU is an 80186 }
                            wf_LargeFrame = $00000100;    { Windows EMS large-frame configuration }
                            wf_SmallFrame = $00000200;    { Windows EMS small-frame configuration }
                            wf_80x87      = $00000400;    { System contains a math coprocessor }
                            wf_DPMI       = $80000000;    { Running in DOS protected mode }
                           
                          { GlobalAlloc and GlobalReAlloc flags }
                           
                          const
                            gmem_Fixed       = $0000;     { Allocate fixed memory }
                            gmem_Moveable    = $0002;     { Allocate moveable memory }
                            gmem_NoCompact   = $0010;     { Don't compact when allocating }
                            gmem_NoDiscard   = $0020;     { Don't discard when allocating }
                            gmem_ZeroInit    = $0040;     { Initialize memory contents to zero }
                            gmem_Modify      = $0080;     { Modify memory flags }
                            gmem_Discardable = $0100;     { Allocate discardable memory }
                            gmem_Not_Banked  = $1000;     { Allocate non-banked memory }
                            gmem_DDEShare    = $2000;     { Allocate sharable memory }
                            gmem_Notify      = $4000;     { Notify upon discarding }
                           
                          { Flags returned by GlobalFlags (in addition to gmem_Discardable) }
                           
                          const
                            gmem_Discarded = $4000;
                            gmem_LockCount = $00FF;
                           
                          { MessageBox Flags }
                           
                          const
                            mb_Ok               = $0000;
                            mb_OkCancel         = $0001;
                            mb_AbortRetryIgnore = $0002;
                            mb_YesNoCancel      = $0003;
                            mb_YesNo            = $0004;
                            mb_RetryCancel      = $0005;
                           
                            mb_IconHand         = $0010;
                            mb_IconStop         = $0010;
                            mb_IconQuestion     = $0020;
                            mb_IconExclamation  = $0030;
                            mb_IconAsterisk     = $0040;
                            mb_IconInformation  = $0040;
                           
                            mb_DefButton1       = $0000;
                            mb_DefButton2       = $0100;
                            mb_DefButton3       = $0200;
                           
                            mb_ApplModal        = $0000;
                            mb_SystemModal      = $1000;
                            mb_TaskModal        = $2000;
                           
                            mb_NoFocus          = $8000;
                           
                            mb_TypeMask         = $000F;
                            mb_IconMask         = $00F0;
                            mb_DefMask          = $0F00;
                            mb_ModeMask         = $3000;
                            mb_MiscMask         = $C000;
                           
                          { MessageBox return values }
                           
                          const
                            id_Ok     = 1;
                            id_Cancel = 2;
                            id_Abort  = 3;
                            id_Retry  = 4;
                            id_Ignore = 5;
                            id_Yes    = 6;
                            id_No     = 7;
                           
                          { Windows API routines }
                           
                          function AccessResource(Instance, ResInfo: THandle): Integer;
                          function AllocDStoCSAlias(Selector: Word): Word;
                          function AllocSelector(Selector: Word): Word;
                          function ChangeSelector(SourceSelector, DestSelector: Word): Word;
                          procedure DOS3Call;
                          procedure FatalExit(Code: Integer);
                          function FindResource(Instance: THandle; Name, ResType: PChar): THandle;
                          procedure FreeLibrary(LibModule: THandle);
                          function FreeResource(ResData: THandle): Bool;
                          function FreeSelector(Selector: Word): Word;
                          function GetDOSEnvironment: PChar;
                          function GetFreeSpace(Flag: Word): Longint;
                          function GetModuleFileName(Module: THandle; Filename: PChar; Size: Integer): Integer;
                          function GetModuleHandle(ModuleName: PChar): THandle;
                          function GetModuleUsage(Module: THandle): Integer;
                          function GetProcAddress(Module: THandle; ProcName: PChar): TFarProc;
                          function GetSelectorBase(Selector: Word): Longint;
                          function GetSelectorLimit(Selector: Word): Longint;
                          function GetVersion: Longint;
                          function GetWinFlags: Longint;
                          function GlobalAlloc(Flags: Word; Bytes: Longint): THandle;
                          {function GlobalAllocPtr(Flags: Word; Bytes: Longint): Pointer;}
                          function GlobalCompact(MinFree: Longint): Longint;
                          {function GlobalDiscard(Mem: THandle): THandle;}
                          function GlobalDosAlloc(Bytes: Longint): Longint;
                          function GlobalDosFree(Selector: Word): Word;
                          procedure GlobalFix(Mem: THandle);
                          function GlobalFlags(Mem: THandle): Word;
                          function GlobalFree(Mem: THandle): THandle;
                          {function GlobalFreePtr(P: Pointer): THandle;}
                          function GlobalHandle(Mem: Word): Longint;
                          function GlobalLock(Mem: THandle): Pointer;
                          function GlobalLRUNewest(Mem: THandle): THandle;
                          function GlobalLRUOldest(Mem: THandle): THandle;
                          procedure GlobalNotify(NotifyProc: TFarProc);
                          function GlobalPageLock(Selector: THandle): Word;
                          function GlobalPageUnlock(Selector: THandle): Word;
                          {function GlobalPtrHandle(P: Pointer): THandle;}
                          function GlobalReAlloc(Mem: THandle; Bytes: Longint; Flags: Word): THandle;
                          {function GlobalReAllocPtr(P: Pointer; Bytes: Longint; Flags: Word): Pointer;}
                          function GlobalSize(Mem: THandle): Longint;
                          function GlobalUnfix(Mem: THandle): Bool;
                          function GlobalUnlock(Mem: THandle): Bool;
                          function LoadLibrary(LibFileName: PChar): THandle;
                          function LoadResource(Instance: THandle; ResInfo: THandle): THandle;
                          function LoadString(Instance: THandle; ID: Word; Buffer: PChar;
                            BufferMax: Integer): Integer;
                          function LockResource(ResData: THandle): Pointer;
                          function LockSegment(Segment: Word): THandle;
                          function MessageBox(WndParent: THandle; Text, Caption: PChar;
                            TextType: Word): Integer;
                          function PrestoChangoSelector(SourceSelector, DestSelector: Word): Word;
                          function SetSelectorBase(Selector: Word; Base: Longint): Word;
                          function SetSelectorLimit(Selector: Word; Limit: Longint): Word;
                          function SizeOfResource(Instance, ResInfo: THandle): Longint;
                          function UnlockResource(ResData: THandle): Bool;
                          function UnlockSegment(Segment: Word): THandle;
                           
                          { Inline routines }
                           
                          (*function MakeLong(A, B: Word): Longint;
                          inline(
                            $5A/    { POP DX }
                            $58);   { POP AX }
                           
                          function LoWord(A: Longint): Word;
                          inline(
                            $58/    { POP AX }
                            $5A);   { POP DX }
                           
                          function HiWord(A: Longint): Word;
                          inline(
                            $5A/    { POP DX }
                            $58);   { POP AX }
                           
                          function LoByte(A: Word): Byte;
                          inline(
                            $58/       { POP AX    }
                            $32/$E4);  { XOR AH,AH }
                           
                          function HiByte(A: Word): Byte;
                          inline(
                            $58/       { POP AX    }
                            $8A/$C4/   { MOV AL,AH }
                            $32/$E4);  { XOR AH,AH } *)
                           
                          implementation
                           
                          { KERNEL routines }
                           
                          procedure FatalExit;      external 'KERNEL' index 1;
                          function GetVersion;      external 'KERNEL' index 3;
                          function GlobalAlloc;      external 'KERNEL' index 15;
                          function GlobalReAlloc;      external 'KERNEL' index 16;
                          function GlobalFree;      external 'KERNEL' index 17;
                          function GlobalLock;      external 'KERNEL' index 18;
                          function GlobalUnlock;      external 'KERNEL' index 19;
                          function UnlockResource;    external 'KERNEL' index 19;
                          function GlobalSize;      external 'KERNEL' index 20;
                          function GlobalHandle;      external 'KERNEL' index 21;
                          function GlobalFlags;      external 'KERNEL' index 22;
                          function LockSegment;      external 'KERNEL' index 23;
                          function UnlockSegment;      external 'KERNEL' index 24;
                          function GlobalCompact;      external 'KERNEL' index 25;
                          function GetModuleHandle;    external 'KERNEL' index 47;
                          function GetModuleUsage;    external 'KERNEL' index 48;
                          function GetModuleFileName;    external 'KERNEL' index 49;
                          function GetProcAddress;    external 'KERNEL' index 50;
                          function FindResource;      external 'KERNEL' index 60;
                          function LoadResource;      external 'KERNEL' index 61;
                          function LockResource;      external 'KERNEL' index 62;
                          function FreeResource;      external 'KERNEL' index 63;
                          function AccessResource;    external 'KERNEL' index 64;
                          function SizeOfResource;    external 'KERNEL' index 65;
                          function LoadLibrary;      external 'KERNEL' index 95;
                          procedure FreeLibrary;      external 'KERNEL' index 96;
                          procedure DOS3Call;      external 'KERNEL' index 102;
                          function GetDOSEnvironment;             external 'KERNEL' index 131;
                          function GetWinFlags;      external 'KERNEL' index 132;
                          procedure GlobalNotify;      external 'KERNEL' index 154;
                          function GlobalLRUOldest;    external 'KERNEL' index 163;
                          function GlobalLRUNewest;    external 'KERNEL' index 164;
                          function GetFreeSpace;      external 'KERNEL' index 169;
                          function AllocDStoCSAlias;              external 'KERNEL' index 171;
                          function AllocSelector;                 external 'KERNEL' index 175;
                          function FreeSelector;                  external 'KERNEL' index 176;
                          function ChangeSelector;    external 'KERNEL' index 177;
                          function PrestoChangoSelector;    external 'KERNEL' index 177;
                          function GlobalDosAlloc;    external 'KERNEL' index 184;
                          function GlobalDosFree;      external 'KERNEL' index 185;
                          function GetSelectorBase;    external 'KERNEL' index 186;
                          function SetSelectorBase;    external 'KERNEL' index 187;
                          function GetSelectorLimit;    external 'KERNEL' index 188;
                          function SetSelectorLimit;    external 'KERNEL' index 189;
                          function GlobalPageLock;                external 'KERNEL' index 191;
                          function GlobalPageUnlock;              external 'KERNEL' index 192;
                          procedure GlobalFix;                    external 'KERNEL' index 197;
                          function GlobalUnfix;                   external 'KERNEL' index 198;
                           
                          { USER routines }
                           
                          function MessageBox;      external 'USER' index 1;
                          function LoadString;      external 'USER' index 176;
                           
                          { Wrapper routines }
                           
                          (*function GlobalDiscard(Mem: THandle): THandle; assembler;
                          asm
                            PUSH  Mem
                            XOR  AX,AX
                            PUSH  AX
                            PUSH  AX
                            MOV  AX,gmem_Moveable
                            PUSH  AX
                            CALL  GlobalReAlloc
                          end;
                           
                          function GlobalPtrHandle(P: Pointer): THandle; assembler;
                          asm
                            PUSH  P.Word[2]
                            CALL  GlobalHandle
                          end;
                           
                          function GlobalAllocPtr(Flags: Word; Bytes: Longint): Pointer; assembler;
                          asm
                            PUSH  Flags
                            PUSH  Bytes.Word[2]
                            PUSH  Bytes.Word[0]
                            CALL  GlobalAlloc
                            PUSH  AX
                            CALL  GlobalLock
                          end;
                           
                          function GlobalReAllocPtr(P: Pointer; Bytes: Longint;
                            Flags: Word): Pointer; assembler;
                          asm
                            PUSH  P.Word[2]
                            CALL  GlobalHandle
                            PUSH  AX
                            PUSH  AX
                            CALL  GlobalUnlock
                            PUSH  Bytes.Word[2]
                            PUSH  Bytes.Word[0]
                            PUSH  Flags
                            CALL  GlobalReAlloc
                            PUSH  AX
                            CALL  GlobalLock
                          end;
                           
                          function GlobalFreePtr(P: Pointer): THandle; assembler;
                          asm
                            PUSH  P.Word[2]
                            CALL  GlobalHandle
                            PUSH  AX
                            PUSH  AX
                            CALL  GlobalUnlock
                            CALL  GlobalFree
                          end;     *)
                           
                          end.


                        И ещё куда написать(E - mail please).
                        Сообщение отредактировано: Romtek -
                          Сорри за эту фигню! Проблемы со связью ::) Так что если тебя не затруднит посмотри please!
                            В сообщении # 9
                              Что в сообщении #9 ???
                                Мой е-мэйл
                                  Ну всё? check your mail. I wait answers :D
                                    Ок i recieved your letter, but прблема не ушла-> ПИШЕТ: ТАКОГО ИМЕНИ ПОЛЬЗОВАТЕЛЯ НЕ СУЩЕСТВЕТ! Что делать ???
                                      Только что попробовал залогиниться от твоего имени -
                                      замечательно входит, замечательно выходит! (с)
                                      У тебя имя начинается с большой буквы, кстати
                                        Большой Thanks. Всё понял ;D Просто не привык различать регистры ::)
                                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                        0 пользователей:


                                        Рейтинг@Mail.ru
                                        [ Script execution time: 0,0399 ]   [ 15 queries used ]   [ Generated: 27.07.24, 02:39 GMT ]