AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Pointer...

Ein Thema von Mr Whoopee · begonnen am 13. Mär 2005 · letzter Beitrag vom 14. Mär 2005
Antwort Antwort
Mr Whoopee

Registriert seit: 28. Jun 2004
73 Beiträge
 
#1

Problem mit Pointer...

  Alt 13. Mär 2005, 21:05
Hallo ihr Lieben,
ich habe ein Problem:
Ich habe eine Variable vom Typ Pointer (pRes), die ich an eine Procedure übergeben muss. Dieser Variable wird einen Wert zugewiesen:
hRes := FindResource(hInstance, 'bild1', 'bilder');
hRes := LoadResource(hInstance, hRes);
und dann wird das an pRes mit
pRes := LockResource(hRes);
übergeben.
Das geht jetzt nur für Ressourcen innerhalb der Exe. Bloß will ich jetzt eine Datei zuweisen, die irgendwo liegt. Wie kann ich den Pfad der Datei zum Pointer machen?

Danke für alle Hilfen,


Mr Whoopee


EDIT: Topic geändert
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Pointer

  Alt 13. Mär 2005, 21:43
Hallo du lieber.
Zitat von Mr Whoopee:
Wie kann ich den Pfad der Datei zum Pointer machen?
Ich glaube, du hast nicht verstanden, was der Code macht. Ich rate jetzt einfach mal und sage, dass du an eine Ressource aus einer anderen Anwendung dran willst.

Bitte präzesier deine Frage und ändere auch den Titel deines Topics entsprechen. "Pointer" ist nicht sehr aussagekräftig und kann alles mögliche bedeuten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mr Whoopee

Registriert seit: 28. Jun 2004
73 Beiträge
 
#3

Re: Pointer

  Alt 13. Mär 2005, 22:58
Ja sorry Luckie, ich kapiers wirklich nicht... deshalb frag ich ja. Und zum Thema Topic fiel mir auch nichts besseres ein.
Also die Procedure wird schematisch so aufgerufen:
Name(LongBool,Pointer,Cardinal,Cardinal,Cardinal);
Der Pointer wird ja, wie schon oben geschrieben, so erstellt:
Delphi-Quellcode:
hRes := FindResource(hInstance, 'bild1', 'bilder');
hRes := LoadResource(hInstance, hRes);
pRes := LockResource(hRes);
Bloß ist das der Code, um eine Ressource aus der Exe dieses Programms zu holen. Ich möchte jedoch keine Ressource holen, sondern gleich eine Datei zuweisen. Da die Prozedur aber nur den Pointer da annimmt komm ich nicht weiter.

Ich hoffe, dass ich mich jetzt besser ausgedrückt habe..


In Hoffnung... Mr Whoopee
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Pointer

  Alt 14. Mär 2005, 02:01
Zitat von Mr Whoopee:
Ich hoffe, dass ich mich jetzt besser ausgedrückt habe..
Ehrlich gesagt nicht. Was willst du den für eine Datei zuweisen? Und was willst du dann mit der Datei machen?

Der springende Punkt, warum der Code eine Ressource aus dem eigenen Programm extrahiert ist diese Zeile:
Code:
hRes := FindResource([b]hInstance[/b], 'bild1', 'bilder');
Das PSDK sagt dazu:
Zitat:
Code:
HRSRC FindResource(
    HMODULE hModule,
    LPCTSTR lpName,
    LPCTSTR lpType
);
hModule
[in] Handle to the module whose executable file contains the resource. A value of NULL specifies the module handle associated with the image file that the operating system used to create the current process.
Du musst dort also ein Handle auf das zu ladende Module übergeben an dessen Ressource du dran willst. Also zumBeispiel so:
Delphi-Quellcode:
foo(bBool: LongBool,pPoeint: Pointer, intBar1: Cardinal, intVar2: Cardinal, intBar3:Cardinal, ExeFilename: String);
begin
  hRes := FindResource(GetModuleHandle(ExeFilename), 'bild1', 'bilder');
  ...;
  ...;
end;
Allerdings zu beachten:
Zitat:
The GetModuleHandle function retrieves a module handle for the specified module if the file has been mapped into the address space of the calling process.
Geht also nur so bei DLLs, die man vorher mit MSDN-Library durchsuchenLoadLibrary zum Beispiel in seinen eigenen Adressraum geladen hat. Wie das zum Beispiel RessourcenEditoren bei Exe-Dateien machen, weiß ich im Moment auch nicht. Aber eine Suche im Forum mit entsprechenden Suchbegriffen sollte helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:06 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