Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#1

ASM Inline code x64

  Alt 13. Feb 2022, 21:48
Habe gelesen das man unter 64Bit ASM nicht in Inline code verwenden soll.
Wie kann ich dann diesen Block als Procedure auslegen? So das er inline verwendet werden kann?
Wenn möglich sollte es auch unter 32Bit funktionieren.

Delphi-Quellcode:
      FPWord := Get8087CW;
      Set8087CW(MCW_EM);

      if (not VisInfo^.VisPointer^.Render(VisInfo^.VisBuf, StretchWidth,
        StretchHeight, StretchWidth, @VisData)) then
      begin
        // der block
        asm
          FNCLEX
        end;
        // end block
        Set8087CW(FPWord);

        VisInfo^.Rendering := False;
        Exit;
      end;

      // der block
      asm
        FNCLEX
      end;
      // end block
      Set8087CW(FPWord);
Würde das reichen?
Delphi-Quellcode:
procedure ClearPendingExceptions;
asm
  FNCLEX
end;
Aktueller Fehler. 64Bit
Zitat:
[dcc64 Fehler] uMain.pas(513): E1025 Sprach-Feature wird nicht unterstützt: 'ASM'
Aber nur wenn ich die 32Bit exe als Abhängigkeit zuweise.
Zudem treten dann noch andere Probleme auf.

Zitat:
[dcc64 Fehler] uMain.pas(23): E2065 Ungenügende Forward- oder External-Deklaration: 'WinMain'
[dcc64 Fehler] uMain.pas(26): E2065 Ungenügende Forward- oder External-Deklaration: 'WndProc'
Delphi-Quellcode:
function WinMain(hInstance: HINST; hPrevInstance: HINST; lpCmdLine: PChar;
  nCmdShow: integer): integer; stdcall;

function WndProc(WinHandle: HWND; Msg: UINT; wP: WParam; lP: LParam): LRESULT;
  stdcall;
Warum treten dann diese Fehler auf?
Weil 32Bit.exe nicht kompatibel ist zu 64Bit.exe ??
Weshalb vertragen sich die Abhängigkeiten nicht.

Bei aktivierter Abhängigkeit tritt beim Start der Anwendung noch dieser Fehler auf
Zitat:
[dcc64 Fataler Fehler] SOP.dpr(10): F2048 Falsches Unit-Format: '_dcu\uMain.dcu' - Erwartete Version: 35.0, Windows Unicode(x64) Gefundene Version: 35.0, Windows Unicode(x86)
Wie kann es sein das der Compiler nicht erkennt das SOP eine 32Bit Anwendung ist bei aktivierter Abhängigkeit.
Auch ohne die Zuweisung der Abhängigkeit alle Projekte kompilieren tritt der Fehler auf
Da stimmt doch was nicht!

Geändert von venice2 (14. Feb 2022 um 00:08 Uhr)
  Mit Zitat antworten Zitat