AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vorgang kann nicht erzeugt werden

Ein Thema von napsterxx · begonnen am 18. Mai 2008 · letzter Beitrag vom 20. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 12:46
Also ich benutze Delphi 2005 Personal und Vista. Ich habe gestern eine 3D DirectX 9 Anwendung geschrieben, wollte heute daran weiterarbeiten, jedoch kann ich das Projekt nicht mehr kompilieren. THematitel ist die Fehlermeldung
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 12:53
Ohne Code wäre es ein reines Ratespiel
Markus Kinzler
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 13:13
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXHelp, Direct3D9, D3DX9;

type
  TForm1 = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure OnIdle(Sender: TObject; var Done: boolean);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Direct3D9: IDirect3D9;
  D3DDev9: IDirect3DDevice9;

  Vertexbuffer: IDirect3DVertexBuffer9;

type
  TD3DLVertex = record
    Position: TD3DXVector3;
    Diffuse: TD3DColor;
  end;

const
  D3DFVF_TD3DLVERTEX = D3DFVF_XYZ or D3DFVF_DIFFUSE;

implementation

{$R *.dfm}

function GetTD3DLVertex( X, Y, Z: Extended; Farbe: TD3DColor ): TD3DLVertex;
begin
  Result.Position := D3DXVector3( X, Y, Z );
  Result.Diffuse := Farbe;
end;

function InitGeometry: HRESULT;
var
  Vertices: Array[0..2] of TD3DLVertex;
  pVertices: Pointer;
begin
  Vertices[0] := GetTD3DLVertex( 1.0, -1.0, 0.0, $FFFF0000 );
  Vertices[1] := GetTD3DLVertex( -1.0, -1.0, 0.0, $FF0000FF );
  Vertices[2] := GetTD3DLVertex( 0.0, 1.0, 0.0, $FFFFFFFF );

  Result := D3DDev9.CreateVertexBuffer( Sizeof( TD3DLVertex) *3,
                                        D3DUSAGE_WRITEONLY,
                                        D3DFVF_TD3DLVERTEX,
                                        D3DPOOL_DEFAULT,
                                        Vertexbuffer, nil );
  if Result <> D3D_OK then
    Exit;

  Result := Vertexbuffer.Lock( 0, SizeOf( TD3DLVertex ) * 3, pVertices, 0 );
  if Result <> D3D_OK then
    Exit;
  Move( Vertices, pVertices^, SizeOf( Vertices ) );
  Result := Vertexbuffer.Unlock;

  D3DDev9.SetRenderState( D3DRS_LIGHTING, LongWord( False ) );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DHInitDGFX( Form1.Handle, False, True, 0, 0, 0, True, Direct3D9, D3DDev9 );
  InitGeometry;
  Application.OnIdle := OnIdle;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Vertexbuffer := nil;
  DHCloseDGFX( Direct3D9, D3DDev9 );
end;

procedure Render;
begin
  D3DDev9.BeginScene;
  D3DDev9.Clear( 0, nil, D3DCLEAR_TARGET, D3DCOLOR_ARGB( 0, 0, 0, 0 ), 1.0, 0);

  D3DDev9.SetStreamSource( 0, VertexBuffer, 0, SizeOf( TD3DLVertex ) );
  D3DDev9.SetFVF( D3DFVF_TD3DLVertex );

  D3DDev9.DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );


  D3DDev9.EndScene;
  D3DDev9.Present( nil, nil, 0, nil );
end;

procedure TForm1.OnIdle(Sender: TObject; var done: boolean);
begin
  done := false;
  Render;
end;

end.
Der Code hat gestern noch funktioniert
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 13:23
Hier hatte jemand ein ähnliches Problem. Er hatte eine DLL nicht richtig eingebunden. Könnte das bei dir u.U. auch der Fall sein?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 14:30
Ne ist nicht der fall, ist ja keine DLL eingebunden
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 14:35
Läßt sich das gar nicht erst kompilieren oder tritt der Fehler erst zur Laufzeit auf? Wenn zweiteres könnte man es debuggen, wenn ersters würde ich mal eine Routine nach der anderen auskommentieren und gucken, wann es sich wieder kompilieren lässt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Vorgang kann nicht erzeugt werden

  Alt 18. Mai 2008, 15:35
Ich drücke [F9] also zum Kompilieren und der Fehler kommt.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Vorgang kann nicht erzeugt werden

  Alt 20. Mai 2008, 12:43
Das Problem besteht immernoch
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
delphimaedel
(Gast)

n/a Beiträge
 
#9

Re: Vorgang kann nicht erzeugt werden

  Alt 20. Mai 2008, 12:45
Schau mal in meiner Signatur. Damit ist alles gesagt...
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Vorgang kann nicht erzeugt werden

  Alt 20. Mai 2008, 12:52
Zitat von napsterxx:
Das Problem besteht immernoch
Zitat von Luckie:
Läßt sich das gar nicht erst kompilieren oder tritt der Fehler erst zur Laufzeit auf? Wenn zweiteres könnte man es debuggen, wenn ersters würde ich mal eine Routine nach der anderen auskommentieren und gucken, wann es sich wieder kompilieren lässt.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz